p = Process(target=f, args=(myObject,))
p.start()
p.join()
从实验开始,在函数f()
内,我可以正常访问myObject
,其成员似乎完好无损,即使我们可能处于不同的过程中。在当前函数和id(myObject)
中打印f()
会返回相同的数字。
在myObject
内访问f()
时,Python秘密执行IPC吗?
答案 0 :(得分:1)
实际过程取决于您是在运行unix还是windows。
在* nix上,使用fork()创建进程的完整副本。
在Windows上,我相信该对象被腌制(参见pickle模块)并通过一些IPC频道发送。
答案 1 :(得分:1)
正如温斯顿写道:在Unix上,进程将被分叉,分叉进程基本上是父进程的完整副本(这就是id相同的原因)。