在 Windows 中复制 fork() 的最佳方法是什么?
如何使用 Python 实现一些逻辑,使我能够通过 fork()
系统调用在 Windows 上重现 Linux 上的功能?
我专门尝试在 SAPI Com 组件上执行一个方法,同时继续主线程中的其他逻辑,而无需阻塞或等待。
How do I implement some logic that will allow me to reproduce on Windows the functionality that I have on Linux with the fork()
system call, using Python?
I'm specifically trying to execute a method on the SAPI Com component, while continuing the other logic in the main thread without blocking or waiting.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
可能是 python 的 spawn() 版本? http://en.wikipedia.org/wiki/Spawn_(operating_system)
Possibly a version of spawn() for python? http://en.wikipedia.org/wiki/Spawn_(operating_system)
使用 python 多处理模块,它可以在任何地方工作。
以下是 IBM DeveloperWords 文章,展示了如何从 os. fork() 到多处理模块。
Use the python multiprocessing module which will work everywhere.
Here is a IBM developerWords article that shows how to convert from os.fork() to the multiprocessing module.
fork()
事实上在 Windows 中被复制,位于 Cygwin,但它的毛茸茸的。有关以下说明,请参阅Cygwin 用户指南这个黑客。
fork()
has in fact been duplicated in Windows, under Cygwin, but it's pretty hairy.See the The Cygwin User's Guide for a description of this hack.
查看os 模块中的进程管理功能。 有多种不同方式(同步和异步)启动新进程的函数。
我还应该指出,Windows 不提供与其他系统上的 fork() 完全相同的功能。 要在 Windows 上进行多处理,您需要使用 threading 模块。
Have a look at the process management functions in the os module. There are function for starting new processes in many different ways, both synchronously and asynchronously.
I should note also that Windows doesn't provide functionality that is exactly like fork() on other systems. To do multiprocessing on Windows, you will need to use the threading module.
Eli 的线程示例将运行线程,但不会执行该行之后的任何工作。
我将研究处理模块和子流程模块。 我认为我正在运行的 com 方法需要位于另一个进程中,而不仅仅是另一个线程中。
The Threading example from Eli will run the thread, but not do any of the work after that line.
I'm going to look into the processing module and the subprocess module. I think the com method I'm running needs to be in another process, not just in another thread.
您可能还喜欢使用处理模块(http://pypi.python.org/pypi/processing)。 它具有许多用于使用与线程模块相同的 API 编写并行系统的功能......
You might also like using the processing module (http://pypi.python.org/pypi/processing). It has lot's of functionality for writing parallel systems with the same API as the threading module...
除了Greg指出的os模块中的进程管理代码之外,您还应该看一下threading模块:
https://docs.python.org/library/threading.html
In addition to the process management code in the os module that Greg pointed out, you should also take a look at the threading module:
https://docs.python.org/library/threading.html