import threading
import time
sem = threading.Semaphore(3)# 限制线程的最大数量为3个classGoThread(threading.Thread):def__init__(self, num):super().__init__()
self.num = num
defrun(self):# 总共要数多少个数for i inrange(self.num):# 限制最大并发数(本质通过release数限制)with sem:# 防止同时输出with lock:print(threading.current_thread().name, i)# 输出后暂停1秒
time.sleep(1)
lock = threading.Lock()
thread_list =[]# 共十二个线程对象for i inrange(12):# 每个线程对象都数到6
thread = GoThread(6)
thread_list.append(thread)for i in thread_list:
i.start()for i in thread_list:
i.join()