python - Python Multiprocessing 如何在 Windows 上实现?

标签 python multithreading fork

在没有Windows fork() 调用的情况下,Python 2.6 中的multiprocessing 包在Windows 下是如何实现的?在 Win32 线程之上或某种伪造的 fork 之上,或者只是在现有多线程之上的兼容性?

最佳答案

这是使用对 sys.executable 的子进程调用(即启动一个新的 Python 进程),然后序列化所有全局变量,并通过管道发送它们来完成的。当前进程的一个可怜人的克隆。这是 extra restrictions 的原因在 Windows 平台上使用多处理时发现。

您可能也有兴趣查看 Jesse Noller's talk from PyCon关于多重处理,他在其中讨论了它的使用。

关于python - Python Multiprocessing 如何在 Windows 上实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/765129/

相关文章:

Python每天定时运行一段代码

python - EAFP/LBYL 的并发影响

c - 在循环内 fork ,变量随每次迭代而变化

c - Linux 中父进程和子进程地址空间的区别?

python - 如何从相机(或网络摄像头)在 python 中捕获视频(和音频)

python - TypeError at/accounts/register/__init__() 得到意外的关键字参数 'instance'

python - AZURE 函数从 AZURE BLOB 读取 XLSX

C++ 线程池

android - 在 fragment 中加载 ListView 时的新线程

c - 子进程是否可以获取其兄弟进程的 PID?