zl程序教程

您现在的位置是:首页 >  后端

当前栏目

python多进程编程-多进程编程中的IPC(三)

2023-06-13 09:18:44 时间

消息队列

消息队列是一种进程间通信方式,可以实现进程之间的异步通信,即一个进程向消息队列发送消息,另一个进程从消息队列中接收消息。在Python中,可以使用multiprocessing模块中的Queue类来创建消息队列。

下面是一个使用消息队列实现多进程通信的示例代码:

import multiprocessing

def sender(queue):
    queue.put('hello')

def receiver(queue):
    msg = queue.get()
    print('received:', msg)

if __name__ == '__main__':
    queue = multiprocessing.Queue()
    p1 = multiprocessing.Process(target=sender, args=(queue,))
    p2 = multiprocessing.Process(target=receiver, args=(queue,))
    p1.start()
    p2.start()
    p1.join()
    p2.join()

这里我们定义了两个进程函数sender和receiver,分别用于向消息队列发送消息和从消息队列中接收消息。在主程序中,我们创建了一个消息队列queue,并使用multiprocessing.Queue()函数将其创建出来。然后创建了两个进程p1和p2,分别将sender和receiver函数作为进程的执行函数。在进程p1中,我们向消息队列queue中发送了一条消息“hello”;在进程p2中,我们从消息队列queue中接收了这条消息,并打印出来。