multiprocessing多线程未执行
程序员文章站
2022-06-22 16:06:58
...
以下代码在Jupyter
没有任何输出
# 1 导入
import multiprocessing
import time
#唱歌
def sing( ):
for i in range(3):
print("唱歌...")
time.sleep(0.5)
#跳舞
def dance( ):
for i in range(3):
print("跳舞...")
time.sleep(0.5)
# 2. 使用进程类
sing_process = multiprocessing.Process (target=sing)
dance_process = multiprocessing.Process (target=dance)
# 3. 启动进程
sing_process.start()
dance_process.start()
在这里得到了答案https://zhidao.baidu.com/question/621802532293803652.html
这是因为multiprocessing模块在交互模式是不支持的,在 cmd 里头输入 python xxx.py 来运行起来,你就可以看到子进程的执行了。
注意!如果多进程没有放在主函数运行,会报以下错误
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.
将star
t方法放在main
中即可
上一篇: 【并行计算5】OpenMP
下一篇: ImportError解决