#Python 多线程示例来演示锁定。
#1. 使用 threading.Thread 类定义子类。
#2. 实例化子类并触发线程。
#3. 在线程的 run 方法中实现锁。
import threading
import datetime
exitFlag = 0
class myThread (threading.Thread):
def __init__(self, name, counter):
threading.Thread.__init__(self)
self.threadID = counter
self.name = name
self.counter = counter
def run(self):
print(
"\nStarting "
+ self.name)
# 获取锁同步线程
threadLock.acquire()
print_date(self.name, self.counter)
# 为下一个线程释放锁
threadLock.release()
print(
"Exiting "
+ self.name)
def print_date(threadName, counter):
datefields = []
today = datetime.date.today()
datefields.append(today)
print(
"{}[{}]: {}"
.format( threadName, counter, datefields[0] ))
threadLock = threading.Lock()
threads = []
# 创建新线程
thread1 = myThread(
"Thread"
, 1)
thread2 = myThread(
"Thread"
, 2)
# 启动新线程
thread1.start()
thread2.start()
# 添加线程到线程列表
threads.append(thread1)
threads.append(thread2)
# 等待所有线程完成
for
thread
in
threads:
thread.join()
print(
"\nExiting the Program!!!"
)