python3 持续接收任务 并通过多进程并行执行
时间: 2024-02-17 18:03:12 浏览: 114
Python多进程处理任务
好的,让我来解答你的问题。
首先,你可以使用 Python3 的 `multiprocessing` 模块来实现多进程并行执行任务。下面是一个示例代码:
```python
import multiprocessing
def worker(task):
# 执行任务
print("Processing task:", task)
if __name__ == '__main__':
# 创建进程池,最多同时运行 4 个进程
pool = multiprocessing.Pool(processes=4)
while True:
# 持续接收任务
task = input("Enter a task (type 'exit' to quit): ")
if task == 'exit':
break
# 提交任务到进程池
pool.apply_async(worker, args=(task,))
# 关闭进程池
pool.close()
pool.join()
```
在上面的代码中,我们首先创建了一个进程池,最多同时运行 4 个进程。然后在一个无限循环中持续接收任务,直到用户输入 `exit` 退出循环。每接收到一个任务,就将其提交到进程池中,并指定要执行的任务函数为 `worker`。最后,我们在退出循环后关闭进程池并等待所有进程执行完毕。
需要注意的是,如果你要在多进程中共享数据,那么需要使用 `multiprocessing` 模块提供的队列、管道等进程间通信方式来实现。同时,由于多进程会产生额外的开销,我们需要根据实际情况合理地设置进程池的大小,以尽可能地提高效率。
阅读全文