PY 在 Windows 下 Fork 之后在子进程执行一些操作要怎么做?

xzpjerry731 5天前 5

下面这段代码在 Unix 平台可以输出

(<function hook at 0x7fb4700730e0>,)
func

但是在 Windows 上就只打印 func 了,搜了一圈下来没有看到解决方法,故来求助。

import multiprocessing.util


def hook(*args):
    print (args)


def func():
    print ('func')



multiprocessing.util.register_after_fork(hook, hook)
p = multiprocessing.Process(target=func)
p.start()
最新回复 (2)
  • iConnect 1天前
    引用 2
    Windows 没有这个机制,所以和 Linux 表现出差异。
  • 楼主 xzpjerry731 1天前
    引用 3
    我试了下,这样就可以了

    ···
    import multiprocessing.util


    def hook(*args):
    print (args)


    def func():
    print ('func')

    multiprocessing.util.register_after_fork(hook, hook)
    if __name__ == '__main__':
    p = multiprocessing.Process(target=func)
    p.start()
    ···
  • 游客
    4
返回