Python多線程模擬售票

import threading,time,random
ticket = 100#定義售票的總票數,一個進程內所有的線程可以共享此數據
def sale(lock):#售票處
    global ticket #使用全局變量
    while ticket:
        lock.acquire()
        ticket -=1
        print("【%s】賣票,剩餘票數:%s"% (threading.current_thread().name, ticket))
        lock.release()
        time.sleep(random.randint(0,3))
def main():
    lock = threading.Lock() #自動的全部解鎖操作
    thread_list = [threading.Thread(target=sale, args=(lock,), name="售票員 - %s" % item) for item in range(5)]
    for thread in thread_list:
        thread.start()
    for thread in thread_list:
        thread.join()
    print("車票售空")
if __name__ == '__main__':
    main()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章