python 设计多进程示例,示例中有两个子进程和一个父进程,其中每个进程和父进程都是while True循环,此外设计两个队列,子进程1不断把任务放进用队列1中,子进程2不断把任务放进用队列2中,父进程同时接收两个队列里面的内容,并显示出来
时间: 2024-10-19 11:08:54 浏览: 10
在Python中,可以使用`multiprocessing`模块创建并管理多进程。下面是一个简单的示例,演示如何创建两个子进程`worker1`和`worker2`,以及一个父进程`parent`,它们通过`Queue`(即`multiprocessing.Queue`)来进行数据传递:
```python
import multiprocessing
# 创建两个队列
queue1 = multiprocessing.Queue()
queue2 = multiprocessing.Queue()
# 子进程1的任务函数
def worker1():
while True:
task = input("请输入子进程1的任务: ")
queue1.put(task)
print(f"子进程1已将任务 {task} 放入队列1")
# 子进程2的任务函数
def worker2():
while True:
task = input("请输入子进程2的任务: ")
queue2.put(task)
print(f"子进程2已将任务 {task} 放入队列2")
# 父进程的任务函数,从两个队列中接收并打印任务
def parent():
while True:
if not queue1.empty():
task1 = queue1.get()
print(f"父进程收到任务1: {task1}")
if not queue2.empty():
task2 = queue2.get()
print(f"父进程收到任务2: {task2}")
# 启动子进程
p1 = multiprocessing.Process(target=worker1)
p2 = multiprocessing.Process(target=worker2)
# 启动父进程
p = multiprocessing.Process(target=parent)
# 开始所有进程
p1.start()
p2.start()
p.start()
# 等待所有进程结束
p1.join()
p2.join()
p.join()
print("所有进程已完成")
```
在这个示例中,用户可以在控制台上输入任务,然后子进程会将任务放入对应的队列,父进程从队列中取出任务并显示。当输入`Ctrl+C`退出程序时,所有的子进程和父进程都会停止。
阅读全文