python線程同步
下面的python代碼演示線程鎖的用法和線程同步
#!/usr/bin/pythonimport threading import time
class myThread (threading.Thread): def init(self, threadID, name, counter): threading.Thread.init(self) self.threadID = threadID self.name = name self.counter = counter 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" </pre>
輸出結果Starting Thread-1 Starting Thread-2 Thread-1: Thu Mar 21 09:11:28 2013 Thread-1: Thu Mar 21 09:11:29 2013 Thread-1: Thu Mar 21 09:11:30 2013 Thread-2: Thu Mar 21 09:11:32 2013 Thread-2: Thu Mar 21 09:11:34 2013 Thread-2: Thu Mar 21 09:11:36 2013 Exiting Main Thread