1 import threading
2 import time
3
4
5 class MyThread(threading.Thread):
6 def __init__(self, threadid, name, counter):
7 threading.Thread.__init__(self)
8 self.threadid = threadid
9 self.name = name
10 self.counter = counter
11
12 def run(self):
13 print('开启线程:', self.name)
14 # 获取锁,用于线程同步
15 threadLock.acquire()
16 print_time(self.name, self.counter, 3)
17 # 释放锁,用于开启下一个线程
18 threadLock.release()
19
20
21 def print_time(threadid, delay, counter):
22 while counter:
23 print('%s:%s' % (threadid, time.ctime(time.time())))
24 time.sleep(delay)
25 counter -= 1
26
27 threadLock = threading.Lock() # 第34行直接写:hreading.Lock().release()通不过
28 threads = []
29 # 创建新线程
30 thread1 = MyThread(1, 'thread-1', 1)
31 thread2 = MyThread(2, 'thread-2', 2)
32 # 开启新线程
33 thread1.start()
34 thread2.start()
35 threads.append(thread1)
36 threads.append(thread2)
37 # 等待所有线程完成
38 for i in threads:
39 i.join()
40 print('主线程结束')