Python 子进程为什么加 if __name__ == 'main'
1、python每次创建子进程都会先把主进程中的代码当成模块加载一遍
2、创建一次子进程就相当于执行一次主进程,创建两个相当于执行两次子进程,
所以下面的代码有3个bar

3、所以要把进程写到 if __name__下面,模块加载的时候不会执行if __name__下面的代码,如果不写到下面,当模块加载的时候在创建子进程,在加载在创建会陷入死循环
4、在linux下面代码不会报错
linux内部调用的是fork命令来产生的子进程,它产生的特点是主进程有什么子进程就有什么,创建进程会完全复制主进程
linux下每一个进程都有父子关系,每个进程都能找到父进程直到根进程

5、windows下面的代码会报错
windows 创建的子进程是完全的独立的空间

6、windows如果不想报错可以把数据传参传过去

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:136
阅读量:185
阅读量:56
阅读量:175
阅读量:181