Auto AdSense

Saturday, 24 January 2015

Python Programs - Multithreading - Synchronizing Threads:






  • Synchronization
    #!/usr/bin/python

    import threading
    import time

    class myThread (threading.Thread):
       def __init__(self, threadID, name, counter):
         self.threadID = threadID
         self.name = name
         self.counter = counter
         threading.Thread.__init__(self)
       def run(self):
         print "Starting " + self.name
         # Get lock to synchronize threads
         threadLock.acquire()
         print_time(self.name, self.counter, 3)
         # Free lock to release next thread
         threadLock.release()

      def print_time(threadName, delay, counter):
         while counter:
           time.sleep(delay)
           print "%s: %s" % (threadName, time.ctime(time.time()))
           counter -= 1

    threadLock = threading.Lock()
    threads = []

    # Create new threads
    thread1 = myThread(1, "Thread-1", 1)
    thread2 = myThread(2, "Thread-2", 2)

    # Start new Threads
    thread1.start()
    thread2.start()

    # Add threads to thread list
    threads.append(thread1)
    threads.append(thread2)

    # Wait for all threads to complete
    for t in threads:
       t.join()
    print "Exiting Main Thread"
  • Output
    Starting Thread-1
    Starting Thread-2
    Thread01: Thu Jan 22 16:04:38 2009
    Thread01: Thu Jan 22 16:04:39 2009
    Thread01: Thu Jan 22 16:04:40 2009
    Thread02: Thu Jan 22 16:04:42 2009
    Thread02: Thu Jan 22 16:04:44 2009
    Thread02: Thu Jan 22 16:04:46 2009
    Exiting Main Thread

No comments:

Post a Comment