多处理间通信



我有两个过程。 将来应该控制一个 websocket,另一个线程从 funk 模块接收消息。

现在我想有一个回调on_message,我可以通过 NRF 发送一些东西。

所以我做了一个抽象的实验。 但是我找不到一个 away 来调用另一个进程的回调。

import multiprocessing
from multiprocessing import Queue, Process
def main():
main_queue = Queue()
slave_queue = Queue()
main_process = multiprocessing.Process(target=Main, args=(slave_queue, main_queue))
slave_process = multiprocessing.Process(target=SlaveThread, args=(main_queue, slave_queue))
main_process.start()
slave_process.start()
main_process.join()
slave_process.join()

class SlaveThread:
def __init__(self, main_queue, slave_queue):
main_queue.put(self.callback)
while True:
slave_queue.get()()
def print_slave_thread(self):
print("SlaveThread")
def callback(self):
print("callback from Slave")

class Main:
def __init__(self,  main_queue, slave_queue):
slave_queue.put(self.callback)
while True:
main_queue.get()()
def print_what_websocket_has_send(self):
print("MainThread")
def callback(self):
print("callback from Main")

if __name__ == '__main__':
main()

可悲的是,这种方法行不通。

我不确定您是否可以将函数发送到多进程。但是,您可以将信息发送到队列中,然后由子进程从中读取。您可以发送一个dict,然后在必要时将其扩展为**kwargs

相关内容

  • 没有找到相关文章

最新更新