实例(Python 2.0+)
#!/usr/bin/python# -*- coding: UTF-8 -*-importthreadingimporttimeclassmyThread(threading.Thread): def__init__(self, threadID, name, counter): threading.Thread.__init__(self) self.threadID = threadID self.name = name self.counter = counter defrun(self): print"Starting " + self.name # 获得锁,成功获得锁定后返回True # 可选的timeout参数不填时将一直阻塞直到获得锁定 # 否则超时后将返回False threadLock.acquire() print_time(self.name, self.counter, 3) # 释放锁 threadLock.release()defprint_time(threadName, delay, counter): whilecounter: time.sleep(delay) print"%s: %s" % (threadName, time.ctime(time.time())) counter -= 1threadLock = threading.Lock()threads = []# 创建新线程thread1 = myThread(1, "Thread-1", 1)thread2 = myThread(2, "Thread-2", 2)# 开启新线程thread1.start()thread2.start()# 添加线程到线程列表threads.append(thread1)threads.append(thread2)# 等待所有线程完成fortinthreads: t.join()print"Exiting Main Thread"