首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >multiprocessing.freeze_support()

multiprocessing.freeze_support()
EN

Stack Overflow用户
提问于 2012-12-18 05:37:11
回答 1查看 23.3K关注 0票数 29

为什么多处理模块在被“冻结”时需要调用特定的function才能工作,以生成windows可执行文件?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-13 04:17:38

原因是Windows上缺少fork() (这是not完全正确的)。因此,在Windows上,fork是通过创建一个新的进程来模拟的,在这个进程中运行的代码在Linux上在子进程中运行。由于代码将在技术上不相关的进程中运行,因此在运行之前必须将其交付到那里。它的传送方式是首先对其进行酸洗,然后通过管道将其从原始进程发送到新进程。此外,这个新进程被告知,它必须通过向其传递--multiprocessing-fork命令行参数来运行通过管道传递的代码。如果你看一下freeze_support()函数的implementation,它的任务是检查运行它的进程是否应该运行通过管道传递的代码。

票数 31
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13922597

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档