xxxxxxxxxx
import threading
def worker(argument):
print(argument)
return
for i in range(5):
t = threading.Thread(target=worker, args=[i])
t.start()
xxxxxxxxxx
import threading
import time
def thread_function(name):
print(f"Thread {name}: starting")
time.sleep(2)
print(f"Thread {name}: finishing")
my_thread = threading.Thread(target=thread_function, args=(1,))
my_thread.start()
time.sleep(1)
my_second_thread = threading.Thread(target=thread_function, args=(2,))
my_second_thread.start()
my_second_thread.join() # Wait until thread finishes to exit
xxxxxxxxxx
x = threading.Thread(target=thread_function, args=(1,), daemon=True)
x.start()
# x.join()
xxxxxxxxxx
def myFunction(x, y):
pass
x = threading.Thread(target=myFunction, args=(x, y))
x.start()
xxxxxxxxxx
#Python multithreading example to print current date.
#1. Define a subclass using threading.Thread class.
#2. Instantiate the subclass and trigger the thread.
import threading
import datetime
class myThread (threading.Thread):
def __init__(self, name, counter):
threading.Thread.__init__(self)
self.threadID = counter
self.name = name
self.counter = counter
def run(self):
print("\nStarting " + self.name)
print_date(self.name, self.counter)
print("Exiting " + self.name)
def print_date(threadName, counter):
datefields = []
today = datetime.date.today()
datefields.append(today)
print("{}[{}]: {}".format( threadName, counter, datefields[0] ))
# Create new threads
thread1 = myThread("Thread", 1)
thread2 = myThread("Thread", 2)
# Start new Threads
thread1.start()
thread2.start()
thread1.join()
thread2.join()
print("\nExiting the Program!!!")
xxxxxxxxxx
import threading
def my_thread_function():
print("This is running on a separate thread")
# Create and start a new thread
my_thread = threading.Thread(target=my_thread_function)
my_thread.start()
# Continue with the main thread
print("This is running on the main thread")
xxxxxxxxxx
import threading
def work():
print("Hello User")
if __name__ == "__main__":
thread = threading.Thread(target=work, name='thread-a')
print("How are you?")
thread.join()
xxxxxxxxxx
import threading
from random import randint
from time import sleep
def print_number(number):
# Sleeps a random 1 to 10 seconds
rand_int_var = randint(1, 10)
sleep(rand_int_var)
print "Thread " + str(number) + " slept for " + str(rand_int_var) + " seconds"
thread_list = []
for i in range(1, 10):
# Instantiates the thread
# (i) does not make a sequence, so (i,)
t = threading.Thread(target=print_number, args=(i,))
# Sticks the thread in a list so that it remains accessible
thread_list.append(t)
# Starts threads
for thread in thread_list:
thread.start()
# This blocks the calling thread until the thread whose join() method is called is terminated.
# From http://docs.python.org/2/library/threading.html#thread-objects
for thread in thread_list:
thread.join()
# Demonstrates that the main process waited for threads to complete
print "Done"
xxxxxxxxxx
import threading
def my_function(name):
print(f"Hello, {name}!")
# Create a new thread
thread = threading.Thread(target=my_function, args=("John",))
# Start the thread
thread.start()
# Wait for the thread to complete
thread.join()
xxxxxxxxxx
# SuperFastPython.com
# example of extending the Thread class
from time import sleep
from threading import Thread
# custom thread class
class CustomThread(Thread):
def __init__(self):
Thread.__init__(self, name="Name_of_your_thread")
# override the run function
def run(self):
# block for a moment
sleep(1)
# display a message
print('This is coming from another thread')
# create the thread
thread = CustomThread()
# start the thread --> run() function
thread.start()
# wait for the thread to finish
print('Waiting for the thread to finish')
thread.join()