可以从IDLE运行多处理Process类

发布于 2021-01-29 19:23:28

从文件而不是从IDLE执行时,将运行多处理Process类的基本示例。为什么会这样,可以做到吗?

from multiprocessing import Process

def f(name):
    print('hello', name)

p = Process(target=f, args=('bob',))
p.start()
p.join()
关注者
0
被浏览
53
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    是。该功能的以下工作在f单独的(第三)过程中运行。

    from multiprocessing import Process
    
    def f(name):
        print('hello', name)
    
    if __name__ == '__main__':
        p = Process(target=f, args=('bob',))
        p.start()
        p.join()
    

    但是,要查看print输出,至少在Windows上,必须从这样的控制台启动IDLE。

    C:\Users\Terry>python -m idlelib
    hello bob
    

    idlelib.idle在2.x上使用。)原因是IDLE在单独的进程中运行用户代码。当前,IDLE进程和用户代码进程之间的连接是通过套接字进行的。通过多处理完成的派生不会复制或继承套接字连接。当通过图标或资源管理器(在Windows中)启动IDLE时,打印输出无处可去。当使用python(而不是pythonw)从控制台启动时,输出将进入控制台,如上所述。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看