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" 
 

输出结果

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

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/8377.html

(0)
上一篇 2021年7月18日
下一篇 2021年7月18日

相关推荐

发表回复

登录后才能评论