在Python中使用Process創建子進程遇到的問題
假如使用Process創建子進程,那么在最后的函數調用時需要加上if __name__ == "__main__":語句,否則會報錯。
未使用該語句
代碼示例
from multiprocessing import Process
def test_input():
print("start print info!")
Process(target=test_input).start()
結果示例
RuntimeError:
An attempt has been made to start a new process before the
current process has finished its bootstrapping phase.
This probably means that you are not using fork to start your
child processes and you have forgotten to use the proper idiom
in the main module:
if __name__ == '__main__':
freeze_support()
...
The "freeze_support()" line can be omitted if the program
is not going to be frozen to produce an executable.
使用該語句
代碼示例
from multiprocessing import Process
def test_input():
print("start print info!")
if __name__ == '__main__':
Process(target=test_input).start()
結果示例
start print info!
Process finished with exit code 0

浙公網安備 33010602011771號