在Windows中如何最佳实现fork()的功能?

23 投票
7 回答
34096 浏览
提问于 2025-04-10 23:49

我想知道怎么在Windows上实现一些逻辑,让它能像Linux里的fork()系统调用那样工作,使用Python来做这件事。

我特别想在SAPI Com组件上执行一个方法,同时又希望主线程能继续运行其他逻辑,不用等待或被阻塞。

7 个回答

3

看看 os模块 中的进程管理功能。这个模块里有很多方法可以用来启动新进程,可以同步启动,也可以异步启动。

我还要提到的是,Windows系统没有像其他系统那样的fork()功能。如果你想在Windows上进行多进程处理,就需要使用 threading模块

10

fork() 在Windows系统中其实是有类似功能的,叫做 Cygwin,不过实现起来比较复杂。

Cygwin中的fork调用特别有意思,因为它和Windows的Win32 API不太兼容。这让正确实现这个功能变得非常困难。

想了解更多这个技巧,可以查看 Cygwin用户指南

18

使用Python的 multiprocessing模块,这个模块在任何地方都能使用。

这里有一篇 IBM开发者文章,它展示了如何将os.fork()转换为multiprocessing模块。

撰写回答