假设有一群生产者(Producer)(2个)和一群消费者(Consumer)(3个)通过一个市场来交互产品。生产者的“策略”是如果市场上剩余的产品少于500个,那么就生产50个产品放到市场上;而消费者的“策略”是如果市场上剩余产品的数量多于100个,那么就消费10个产品。 要求用Python编程实现生产者和消费者之间的进程同步。
时间: 2024-03-14 13:43:28 浏览: 27
好的,这是一个经典的生产者消费者问题,我们可以使用Python中的`threading`模块来实现进程同步。下面是代码实现:
```python
import threading
import time
# 定义一个全局变量,表示市场上剩余的产品数量
market = 0
# 定义一个生产者类
class Producer(threading.Thread):
def run(self):
global market
while True:
if market < 500:
market += 50
print('生产了50个产品,现在市场上有{}个产品'.format(market))
time.sleep(1)
# 定义一个消费者类
class Consumer(threading.Thread):
def run(self):
global market
while True:
if market > 100:
market -= 10
print('消费了10个产品,现在市场上有{}个产品'.format(market))
time.sleep(1)
# 创建两个生产者和三个消费者实例
p1 = Producer()
p2 = Producer()
c1 = Consumer()
c2 = Consumer()
c3 = Consumer()
# 启动所有线程
p1.start()
p2.start()
c1.start()
c2.start()
c3.start()
```
在上述代码中,我们定义了一个全局变量`market`表示市场上剩余的产品数量。然后定义了一个生产者类和一个消费者类,并在类中分别实现了生产和消费的逻辑,在适当的时候修改`market`变量的值。最后我们创建了两个生产者和三个消费者实例,并启动了所有线程。这样就可以实现生产者和消费者之间的进程同步了。