Example Python3 Threads
threads.py — Python Source, 1 KB (1980 bytes)
File contents
#!/usr/bin/env python3 # Basic Python threading example # # Set script as executable via: chmod +x threads.py import sys import threading # Python-style thread class class ThreadDemo(threading.Thread): # The __init__() method is a constructor. It is run # when this class is instantiated. Do startup work here def __init__(self, name, startNum): threading.Thread.__init__(self) # Required (don't ask why) # Set any variables you want in your constructor self.name = name self.startNum = startNum # The run() method of a Thread class is run when # thread.start() is called. Do real work here def run(self): print("Running thread '%s' starting at %d" % (self.name, self.startNum)) i=self.startNum while(i < (self.startNum+10)): print(self.name + ", Count " + str(i)) i=i+1 # "Busy work" for demo program. # Otherwise, the threads will run so quickly # that they will finish before the scheduler # switches to a different thread j=0 while(j<400000): j=j+1 # To exit the thread, just return from the run() method def main(): print("Running in main()...") print("Launching two threads...") thread1 = ThreadDemo("Thread 1", 100) thread1.start() thread2 = ThreadDemo("Thread 2", 200) thread2.start() print("Launched two threads...") # Build up a list of all threads # (to make it easy to wait on them) all_threads=[] all_threads.append(thread1) all_threads.append(thread2) # Use the join() function to wait for a specific thread to finish # (i.e. thread1.join() or thread2.join()) print("Waiting for all threads to finish") for one_thread in all_threads: one_thread.join() print("All threads have finished") print("Exiting main()...") if __name__ == "__main__": sys.exit(main())