欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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()

multiprocessing多线程未执行

在这里得到了答案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.

start方法放在main中即可
multiprocessing多线程未执行

multiprocessing多线程未执行

相关标签: 小知识 python