我想问一下,有没有选择在另一个进程中进行函数调用?例如:
def foo()
while True:
do_something...
#main function
def main()
foo()
some_other_actions...
#end
我想让foo在其他进程中运行,但允许main()正常结束并允许用户在终端中写入任何其他内容,例如:
我知道有一些答案,比如使用线程或多进程,但在使用它们之后,程序将不会停止,直到foo()函数结束。有没有选择在Python2.7中做出这样的事情?
提前致谢!
答案 0 :(得分:0)
您可以使用multiprocessing
模块执行此操作。如何实际实现整个事情有几种选择,最好的方法是创建进程池和作业队列。每当你得到一些需要执行的动作时,你就可以从运行main
的进程中将它添加到作业队列中,并且池中的工作人员会将其提取出来。
该模块已有详细记录,因此您应该从multiprocessing
的官方python文档中找到所需的一切。
关于如何在python here中启动孤立进程的问题,但是如果你想这样做,你真的想三思而后行。子进程是否保证保证结束?
你也可以做一些疯狂的事情,比如使用ZeroMQ作为执行工作的排队系统,但这可能超出了你在这里寻找的范围。可能是一个有趣的读物