python線程同步

pythopen 9年前發布 | 2K 次閱讀 Python

下面的python代碼演示線程鎖的用法和線程同步

#!/usr/bin/python

import 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

 本文由用戶 pythopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!