对python和多进程有疑问。
以下面的代码为例:
from multiprocessing import Process, Queue
def f(q):
q.put([42, None, 'hello'])
if __name__ == '__main__':
q = Queue()
p = Process(target=f, args=(q,))
我看到该过程创建了Linux管道设备:
ls -la /proc/2051/fd/5
lr-x------ 1 ... /proc/2051/fd/5 -> 'pipe:[473589]'
问题:
multiprocessing.Queue
是否使用管道设备在进程之间交换数据?
如果1是,那么他们不共享内存,对吗?
如果2是,python以哪种方式序列化和反序列化进程之间的对象?
如果1和2 == False,它如何深入处理各进程之间的数据交换?
我读到有关multiprocessing.shared_memory的信息,但是我正在寻找Queue类。
找不到有关此文档。