3.假设图书馆现有图书100本,请你打开两个线程,分别是借图书(每间隔1秒借1次)和还图书(每间隔3秒还1次),模拟借书还书过程,结果类似如下所示:
时间: 2023-09-13 15:06:15 浏览: 100
以下是Python实现的代码:
```python
import threading
import time
book_count = 100
# 借书线程函数
def borrow_book():
global book_count
while True:
if book_count > 0:
book_count -= 1
print("借书成功,当前图书馆还剩 %d 本书" % book_count)
else:
print("借书失败,图书馆已无可借书籍")
time.sleep(1)
# 还书线程函数
def return_book():
global book_count
while True:
if book_count < 100:
book_count += 1
print("还书成功,当前图书馆还剩 %d 本书" % book_count)
else:
print("还书失败,图书馆已满")
time.sleep(3)
# 创建两个线程
t1 = threading.Thread(target=borrow_book)
t2 = threading.Thread(target=return_book)
# 启动线程
t1.start()
t2.start()
# 等待两个线程结束
t1.join()
t2.join()
```
输出结果类似如下:
```
借书成功,当前图书馆还剩 99 本书
还书成功,当前图书馆还剩 100 本书
借书成功,当前图书馆还剩 98 本书
借书成功,当前图书馆还剩 97 本书
还书成功,当前图书馆还剩 98 本书
借书成功,当前图书馆还剩 96 本书
...
```
阅读全文