火车站总票数200张,编写程序实现三个售票点同时卖票的功能
时间: 2023-11-28 17:04:12 浏览: 83
火车站售票程序
好的,我可以为您编写一个简单的 Python 程序来实现这个功能。以下是程序代码:
```python
import threading
total_tickets = 200
lock = threading.Lock()
def sell_tickets(window, num):
global total_tickets
while True:
lock.acquire() # 加锁
if total_tickets >= num:
total_tickets -= num
print(f"{window} 售出 {num} 张票,还剩 {total_tickets} 张票")
lock.release() # 解锁
else:
print(f"{window} 票已售罄!")
lock.release() # 解锁
break # 结束循环
if __name__ == '__main__':
window1 = threading.Thread(target=sell_tickets, args=("窗口1", 2))
window2 = threading.Thread(target=sell_tickets, args=("窗口2", 3))
window3 = threading.Thread(target=sell_tickets, args=("窗口3", 4))
window1.start()
window2.start()
window3.start()
window1.join()
window2.join()
window3.join()
print("售票结束!")
```
该程序使用了 Python 中的 `threading` 模块,创建了三个售票窗口线程,每个窗口同时售出指定数量的票,直到票全部售完。为了保证线程安全,使用了 Lock 对象进行加锁和解锁。最后输出售票结束的提示。
请注意,该程序仅供学习参考使用,实际使用时可能需要根据具体情况进行适当调整。
阅读全文