问题描述
当我尝试启动一个进程时,无论如何,它都无法启动。这个简单的代码不起作用:
import multiprocessing
def function():
print("function started")
function_process = multiprocessing.Process(target = function)
function_process.start()
function_process.join()
这段代码的输出根本就没有。如果我在此之后打印 function_process
,它返回 <Process name='Process-1' pid=13432 parent=7564 stopped exitcode=0>
。添加 if __name__ == "__main__"
没有任何作用。有什么我在这里遗漏的吗?
解决方法
对我有用:
$ python mp.py
function started
也许你展示的代码是一个更大程序的一部分,而这段代码从未被调用过?
这是代码:
import multiprocessing
def function():
print("function started")
function_process = multiprocessing.Process(target = function)
function_process.start()
function_process.join()
某些 IDE 会重定向 STDIN
、STDERR
和 STDOUT
,并且数据会丢失。 Visual Studio Code 或 PyCharm 不会出现此问题。