python扭曲和多处理

时间:2012-01-28 00:30:40

标签: python twisted multiprocessing

我如何分叉(通过处理包装)并在新进程中完全重置。 我必须从一个具有大量反应器的过程中产生一个新的过程,但我需要在反应器(在新过程中)中移除某些东西并添加其他东西。

例如,我在父母和孩子身上都需要一个glib2reactor ....但是扭曲通知我已经安装了反应堆(在fork之后)。 Fork用每个扭转反应器将父记忆复制给孩子。如何在孩子身上“重置”扭曲?

感谢您的帮助,

Dudda

2 个答案:

答案 0 :(得分:0)

os.fork()克隆当前进程,将子进程的id返回给父进程,将0返回给子进程。

if os.fork():
    "parent"
else:
    "child"

如果您使用os.system()subprocesses模块,则会获得全新的流程。

您可以在&命令中使用分叉os.system()来避免阻塞。

error = os.system('ls &')

os.execv和朋友用目标命令替换当前进程。

答案 1 :(得分:0)

Twisted支持通过twisted.internet.interfaces.IReactorProcess启动任意子进程(包括使用Twisted的进程)。有关如何使用它的详细信息,请参阅the process howto