如何实现一些逻辑,这些逻辑将允许我​​在Windows上使用Python通过fork()系统调用在Linux上重现我具有的功能?

我专门尝试在SAPI Com组件上执行一种方法,同时继续执行主线程中的其他逻辑而不会阻塞或等待。

===============>>#1 票数:17

使用可在任何地方使用的python multiprocessing模块

这是一篇IBM developerWords文章 ,显示了如何从os.fork()转换为多处理模块。

===============>>#2 票数:10

fork()实际上已经被复制在Windows下Cygwin的 ,但它是相当毛。

Cygwin中的fork调用特别有趣,因为它无法在Win32 API上很好地映射。 这使得正确实施非常困难。

有关此黑客的说明,请参见《 Cygwin用户指南》

===============>>#3 票数:3

看一下os模块中的过程管理功能。 具有用于以多种不同方式(同步和异步)启动新流程的功能。

我还要注意Windows在其他系统上没有提供与fork()完全相同的功能。 要在Windows上进行多处理,您将需要使用线程模块。

===============>>#4 票数:3

除了Greg指出的os模块中的流程管理代码之外,您还应该看看线程模块: https : //docs.python.org/library/threading.html

from threading import Thread

def separate_computations(x, y):
    print sum(x for i in range(y))  # really expensive multiplication

Thread(target=separate_compuations, args=[57, 83]).start()
print "I'm continuing while that other function runs in another thread!"

===============>>#5 票数:3

Eli的Threading示例将运行该线程,但在该行之后不执行任何工作。

我将研究处理模块和子过程模块。 我认为我正在运行的com方法需要在另一个进程中,而不仅仅是在另一个线程中。

===============>>#6 票数:2

您可能还喜欢使用处理模块( http://pypi.python.org/pypi/processing )。 它具有许多功能,可使用与线程模块相同的API编写并行系统。

===============>>#7 票数:0

可能是python的spawn()版本吗? http://en.wikipedia.org/wiki/Spawn_(operating_system)

  ask by RyanBrady translate from so

未解决问题?本站智能推荐: