python不同的子进程和通信

2024-05-15 20:37:43 发布

您现在位置:Python中文网/ 问答频道 /正文

初始问题here。在

我在python项目中有一个体系结构:主应用程序进程产生许多子进程。主进程监听网络连接,然后接收到的数据主进程将该数据传递给所有子进程,而不相互监听。子进程可能执行或不执行某个操作(取决于接收到的)数据,如果需要执行操作,则必须向主进程发送消息,以便主进程通过其网络连接向服务器发送数据。对于我的架构,我想最好有一个回调架构,它通常由observer pattern from head of four实现。在

我有一个进程,它不仅仅是并行工作进程,而是不同的子进程可以对它们可能从管道/队列接收的同一数据执行不同的操作,但是如果我将代码适应队列,那么子进程必须使用task_队列.get()从父进程获取数据,但如果许多子进程中的一个将从任务队列-其他人不会接收到该数据,也不会执行操作。我需要将每个任务从task_queue传递到所有子进程,并从它们那里听取答案。在

我已经尝试过通过管道来实现这种功能,但是它需要大量的数据(至少存储管道),而且我不知道如何用许多进程实现管道功能——在我看到的每个例子中,它是一个管道的while True:}无限循环,因此我不能使用它,因为主进程不知道所有子进程中的哪个此时要侦听的进程(实际上只有一个旧的子进程将执行一个操作)。在

我也尝试过通过队列来实现这一点,但是如果其中一个子进程将调用“task”_队列.get()'—它将从任务队列中删除此项,但我需要将该数据传递给所有子进程。另外,在这两个方法中,我需要监听所有的子进程,但是我想作为它们的行为的观察者-如果一些子进程想要执行一个操作-它将数据发送到主进程,然后在主进程中调用回调函数和。。。在

我对python很了解,请告诉我如何实现这一点。在


Tags: 数据项目功能应用程序消息taskgethere