用python写程序3个窗口售票名字分别是window1、window2、window3,窗口之间共享一个票池,每个窗口都可以卖票直到票池里面没有票可以卖,初始票数是50张。
时间: 2023-11-27 17:53:15 浏览: 58
好的,下面是一个简单的Python程序实现:
```python
import threading
class Ticket:
def __init__(self):
self.ticket_pool = 50
def get_ticket(self):
if self.ticket_pool > 0:
self.ticket_pool -= 1
return True
else:
return False
ticket = Ticket()
class SellTicket(threading.Thread):
def __init__(self, window_name):
threading.Thread.__init__(self)
self.window_name = window_name
def run(self):
while True:
if ticket.get_ticket():
print(self.window_name + " sell a ticket.")
else:
print(self.window_name + " has no ticket to sell.")
break
if __name__ == '__main__':
window1 = SellTicket("Window1")
window2 = SellTicket("Window2")
window3 = SellTicket("Window3")
window1.start()
window2.start()
window3.start()
window1.join()
window2.join()
window3.join()
```
程序中定义了一个 `Ticket` 类来表示票池,其中包含了票池的初始数量和一个 `get_ticket` 方法用于售票。每个窗口都是一个线程,通过调用 `Ticket` 类的 `get_ticket` 方法来售票,直到票池中没有票可售为止。
在主函数中创建并启动了三个窗口线程,等待所有线程执行完毕后退出程序。
阅读全文