如何实现一些逻辑,这些逻辑将允许我​​在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

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

7回复

subprocess:删除Windows中的子进程

在Windows上, subprocess.Popen.terminate调用win32的TerminalProcess 。 但是,我看到的行为是我尝试终止的进程的子进程仍在运行。 这是为什么? 如何确保进程启动的所有子进程都被终止?
1回复

python + Windows:运行exe,就好像它与当前进程无关

我知道我可以使用subprocess.Popen运行可执行文件,并有可能将stdin和stdout重定向到文件/使用管道到我的进程。 有没有一种方法可以运行可执行文件,以使生成的进程与当前的Python进程无关? 意思是,我希望以与双击.exe相同的方式启动进程,或者将其名称键入Start-
2回复

通过cmd中的Python运行工具无需等待

我正在cmd通过Python运行工具。 对于给定目录中的每个样本,我希望该工具执行某些操作。 但是,当我在循环中使用process = subprocess.Popen(command)时,这些命令不会等到其完成后立即出现10条提示。 当我使用subprocess.Popen(comman
1回复

红宝石中的分叉过程并写入同一文件

有没有办法使运行时由fork产生的不同进程写入同一文件? 谢谢
3回复

Windows中使用PHP的应用程序线程

我正在制作一个PHP应用程序,该应用程序产生带有子进程的参数,这些参数详细说明了它们应该执行的工作。 更具体地说,子进程将处理大型MySQL数据库中的行,而父应用程序将对行进行计数,并生成约50个具有跨行行的进程。 我需要一种让父进程知道子进程是否完成的方法。 我以前在Linux上创建
1回复

Python-os.fork()之后无法subprocess.call

我有一个分叉的python进程,需要执行另一个python脚本。 我在OpenWRT中使用python 2.7。 这是我分叉过程的方式: 这是我尝试调用另一个脚本的方法:
2回复

如何使用独立的stdout,stderr和stdin来分叉新进程?

我已经阅读了大部分关于subprocess和os.fork()的相关问题,包括关于双重分叉技巧的所有讨论。 但是,这些解决方案似乎都不适合我的方案。 我想分叉一个新进程并允许父进程终止(通常)而不会搞砸孩子的stdin,stdout和stderr而不会杀死孩子。 我的第一次尝试是使
2回复

ipython和fork()

我正在计划一个Python脚本,它将使用os.fork()来创建一堆子进程来执行一些计算。 父进程将阻塞,直到子进程终止。 扭曲的是我需要能够使用python从Unix shell运行脚本,使用%run ipython 。 子进程应该以什么方式终止以避免重新进入ipython命令提
2回复

Python中无限期守护进程的产生

我正在尝试构建一个启动其他完全独立进程的Python守护进程。 一般的想法是针对给定的shell命令,每隔几秒轮询一次并确保命令的k个实例正在运行。 我们保持PID文件的目录,当我们轮询我们删除PID文件,其PID是不再运行和启动(并为PID文件)然而,许多流程,我们需要让到k他们。
3回复

在Django中,如何在启动时间较慢的情况下调用子进程

假设您在Linux上运行Django,并且您有一个视图,并且您希望该视图从名为cmd的子进程返回数据,该子进程对视图创建的文件进行操作,例如:likeo: 现在,假设cmd的启动时间非常慢,但运行时间非常快,并且它本身没有守护进程模式。 我想改善这种观点的响应时间。 我想通过在工