python:3个窗口售票名字分别是window1、window2、window3,窗口之间共享一个票池,每个窗口都可以卖票直到票池里面没有票可以卖,初始票数是50张。三个窗口随机卖票
时间: 2023-11-27 13:53:57 浏览: 63
以下是Python实现:
```python
import threading
import random
# 票池初始值
ticket_pool = 50
# 定义售票函数
def sell_tickets(window_name):
global ticket_pool
while ticket_pool > 0:
# 模拟售票时间
time.sleep(random.randint(1, 3))
# 卖票
ticket_pool -= 1
print(window_name, "卖出了1张票,剩余票数为", ticket_pool)
# 创建线程并启动
if __name__ == "__main__":
window1 = threading.Thread(target=sell_tickets, args=("window1",))
window2 = threading.Thread(target=sell_tickets, args=("window2",))
window3 = threading.Thread(target=sell_tickets, args=("window3",))
window1.start()
window2.start()
window3.start()
window1.join()
window2.join()
window3.join()
print("所有票已售完,售票结束。")
```
在上述代码中,我们首先定义了一个全局变量`ticket_pool`表示票池,初始值为50。然后定义了一个售票函数`sell_tickets`,传入一个窗口名称作为参数。在售票函数中,我们使用一个while循环来模拟售票直到票池为空,每次售票前都会模拟一定的售票时间,并将`ticket_pool`减1表示售出一张票。最后输出售出的票数和剩余票数。
接下来,我们创建3个线程分别代表3个售票窗口,并将售票函数和窗口名称作为参数传入。使用`start()`方法来启动线程,使用`join()`方法来等待所有线程执行完毕。最后输出所有票已售完的信息。
以上代码实现了3个窗口随机卖票的功能,并且使用了线程来模拟多个窗口同时售票的情况。
阅读全文