蛋糕师傅制作一枚蛋糕需要2秒钟,我们的任务是需要制作三个蛋糕,看看采取不同的组织方式需要花费多少时间。 单线程模拟一位蛋糕师傅制作,多线程模拟两位蛋糕师傅制作的python的完整实现代码
时间: 2024-10-09 12:07:48 浏览: 24
蛋糕制作信息网页模板
在Python中,我们可以利用线程库threading来创建多线程模拟两位蛋糕师傅同时工作的情况。以下是单线程和双线程版本的简单实现:
### 单线程(Serial Execution - 一个师傅单独做)
```python
import time
def make_cake():
print(f"蛋糕师傅开始制作...")
time.sleep(2) # 模拟制作过程
print("蛋糕完成!")
# 制作一个蛋糕
make_cake()
```
### 双线程(Parallel Execution - 两个师傅同时做)
```python
import threading
import time
def make_cake(thread_id):
print(f"蛋糕师傅{thread_id}开始制作...")
time.sleep(2)
print(f"蛋糕师傅{thread_id}完成!")
# 创建两个线程
cake_thread_1 = threading.Thread(target=make_cake, args=(1,))
cake_thread_2 = threading.Thread(target=make_cake, args=(2,))
# 启动线程
cake_thread_1.start()
cake_thread_2.start()
# 等待所有线程结束
cake_thread_1.join()
cake_thread_2.join()
```
在这个例子中,如果每个蛋糕师傅独立工作,制作三个蛋糕总共会花费6秒(因为每个蛋糕需要2秒,所以三个蛋糕就是3*2)。然而,由于线程可以并行运行,实际时间取决于操作系统如何调度线程,一般情况下会小于6秒,但这里我们假设线程切换开销可以忽略不计。
阅读全文