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()
Python多线程模拟售票
最新推荐文章于 2022-05-05 19:20:38 发布