import threadingimport timelist_ticket=[] #定义票池lock=threading.Lock() #获得多线程锁num=30#票数for i in range(1,num+1): #ticket_num="0"*(len(str(num))-len(str(i)))+str(i) #001,003,013 ticket_num=str(i).zfill(3) list_ticket.append(ticket_num)# print(list_ticket)def seel_ticket(num): # 通过传参来用窗口买票 #全局变量 # global list_ticket #time.sleep(1) while len(list_ticket)>0: #time.sleep(0.5) lock.acquire() #打开线程锁 print("正在打印票") thre = list_ticket[0] #依次买票 print(num,"号窗口售票点出票成功,票号为:",thre ) del list_ticket[0] #取出以后就得马上删除 lock.release() #释放 time.sleep(0.1) # 必须有这个睡眠#++++++===========================================================# #新建线程# list_thread=[] # 线程的集合for i in range(5): thread = threading.Thread(target=seel_ticket, args=(i+1,)).start() # list_thread.append(thread)# for i in list_thread:# i.start() # #创建5个线程# thread=threading.Thread(target=seel_ticket,args=(1,))# thread2=threading.Thread(target=seel_ticket,args=(2,))# thread3=threading.Thread(target=seel_ticket,args=(3,))# thread4=threading.Thread(target=seel_ticket,args=(4,))# thread5=threading.Thread(target=seel_ticket,args=(5,))# #启动# thread.start()# thread2.start()# thread3.start()# thread4.start()# thread5.start()
原文地址:https://www.cnblogs.com/wxjqss/p/10001781.html
时间: 2024-10-03 21:53:57