简单用代码举例一下如何用消息队列的方式实现上述问题
时间: 2023-02-21 22:12:00 浏览: 75
下面是使用消息队列来实现这个问题的示例代码,使用的是 Python 语言:
```
import multiprocessing
import time
def worker(queue):
while True:
item = queue.get()
if item is None:
break
# 处理任务
print('Processing item:', item)
time.sleep(1)
if __name__ == '__main__':
tasks = [1, 2, 3, 4, 5]
queue = multiprocessing.Queue()
num_workers = 2
workers = []
for i in range(num_workers):
p = multiprocessing.Process(target=worker, args=(queue,))
p.start()
workers.append(p)
for task in tasks:
queue.put(task)
for i in range(num_workers):
queue.put(None)
for w in workers:
w.join()
```
在这个代码中,我们创建了一个消息队列 `queue`,并且创建了两个工作进程,它们将不断地从队列中取出任务并处理它们。主进程向队列中添加了一些任务,然后等待工作进程处理完所有任务。
这是一个简单的示例,它展示了如何使用消息队列在多进程中实现任务分配。
阅读全文