From 4c196a0a88f52363a2850a3c4bd3fcc4408f35e2 Mon Sep 17 00:00:00 2001 From: Kyle K Date: Wed, 7 Oct 2020 21:00:43 -0500 Subject: thread.join() --- thread-ex1.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/thread-ex1.py b/thread-ex1.py index 522f535..ffafbfd 100644 --- a/thread-ex1.py +++ b/thread-ex1.py @@ -2,32 +2,39 @@ import threading import time exitFlag = 0 +incrementme = 0 -class myThread (threading.Thread): +class myThread(threading.Thread): def __init__(self, threadID, name, counter): threading.Thread.__init__(self, name=name) self.threadID = threadID #self.name = name self.counter = counter def run(self): - print("Starting " + self.name) - print_time(self.name, 5, self.counter) + print("Starting " + self.name + " at: " + time.ctime(time.time())) + print_time(self.name, self.counter, 1) # delay fixed to 1 second for simplicity print("Exiting " + self.name) def print_time(threadName, counter, delay): + global incrementme while counter: if exitFlag: threadName.exit() time.sleep(delay) print("%s: %s" % (threadName, time.ctime(time.time()))) counter -= 1 + incrementme = incrementme + 1 # Create new threads -thread1 = myThread(1, "Thread-One", 1) -thread2 = myThread(2, "Thread-Two", 2) +thread1 = myThread(1, "Thread-One", 5) +thread2 = myThread(2, "Thread-Two", 10) # Start new Threads thread1.start() thread2.start() +thread1.join() # .join() will wait for thread to finish, otherwise script will race till the end and result will be 0 +thread2.join() +print(f"result is: {incrementme}") + print("End of Program. Exiting Main Thread") \ No newline at end of file -- cgit v1.2.3