阅读量:4
在Python中,多进程编程可以通过multiprocessing模块实现。为了在进程之间进行通信,multiprocessing模块提供了几种进程间通信(IPC)机制,包括管道(Pipe)、队列(Queue)、共享内存(Value, Array)和消息传递(Manager)。下面是一些示例:
- 管道(Pipe):
from multiprocessing import Process, Pipe
def sender(conn):
conn.send(['Hello', 'from', 'sender'])
conn.close()
def receiver(conn):
message = conn.recv()
print('Received:', message)
conn.close()
if __name__ == '__main__':
parent_conn, child_conn = Pipe()
p1 = Process(target=sender, args=(child_conn,))
p2 = Process(target=receiver, args=(parent_conn,))
p1.start()
p2.start()
p1.join()
p2.join()
- 队列(Queue):
from multiprocessing import Process, Queue
def worker(q):
q.put('Hello from worker')
if __name__ == '__main__':
q = Queue()
p = Process(target=worker, args=(q,))
p.start()
print(q.get())
p.join()
- 共享内存(Value, Array):
from multiprocessing import Process, Value, Array
import ctypes
def worker(num):
num.value += 1
if __name__ == '__main__':
num = Value(ctypes.c_int, 0)
p = Process(target=worker, args=(num,))
p.start()
p.join()
print(num.value)
- 消息传递(Manager):
from multiprocessing import Process, Manager
def worker(d):
d['key'] = 'Hello from worker'
if __name__ == '__main__':
with Manager() as manager:
d = manager.dict()
p = Process(target=worker, args=(d,))
p.start()
print(d['key'])
p.join()
这些示例展示了如何使用不同的IPC机制在多进程Python程序中进行通信。你可以根据你的需求选择合适的通信方式。
以上就是关于“multiprocess python如何进行进程间通信”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm