多线程—卖票

发布时间:2019-04-09 21:42:19编辑:auto阅读(1797)

    题目:python3多线程

     

    import threading
    import time
    list_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()

     

     

     




关键字

上一篇: 列表类型

下一篇: Python递归函数