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 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 work():
print("Hello User")
if __name__ == "__main__":
thread = threading.Thread(target=work, name='thread-a')
print("How are you?")
thread.join()
xxxxxxxxxx
# Python program to illustrate the concept
# of threading
# importing the threading module
import threading
def print_cube(num):
"""
function to print cube of given num
"""
print("Cube: {}".format(num * num * num))
def print_square(num):
"""
function to print square of given num
"""
print("Square: {}".format(num * num))
if __name__ == "__main__":
# creating thread
t1 = threading.Thread(target=print_square, args=(10,))
t2 = threading.Thread(target=print_cube, args=(10,))
# starting thread 1
t1.start()
# starting thread 2
t2.start()
# wait until thread 1 is completely executed
t1.join()
# wait until thread 2 is completely executed
t2.join()
# both threads completely executed
print("Done!")
xxxxxxxxxx
A thread is a separate flow of execution. This means that your program will have two things happening at once. But for most Python 3 implementations the different threads do not actually execute at the same time: they merely appear to.
xxxxxxxxxx
import threading
# Define a class that extends 'threading.Thread'
class MyThread(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
# Implement the 'run' method which will be executed when the thread starts
def run(self):
# Add your code here (the task you want the thread to perform)
print("This is executed by the thread")
# Create an instance of the custom thread class
my_thread = MyThread()
# Start the thread
my_thread.start()
# Wait for the thread to complete (optional)
my_thread.join()