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()
发布了27 篇原创文章 · 获赞 9 · 访问量 1939

猜你喜欢

转载自blog.csdn.net/HAH_HAH/article/details/105320501