python子进程的三种启动方式:fork, spawn, forkserver

        

fork启动方式:
    子进程会直接使用主进程的资源,但是不会重新执行主进程的代码(if __name__='__main__':之外的代码),子进程会直接执行if __name__='__main__':内的代码,此处的代码为主进程创建子进程要执行的函数

spawn启动方式:
    子进程不会直接使用主进程的资源,而是重新执行主进程的代码(if __name__='__main__':之外的代码),然后继续执行if __name__='__main__':内的代码,此处的代码为主进程创建子进程要执行的函数

forkserver启动方式:
    先通过spawn启动forkserver进程,然后通过fork启动子进程
    forkserver是一个独立的进程,此后需要产生子进程的时候,父进程需要联系该进程 fork 一个子进程。因为 forkserver 本身是一个单线程进程,所以是线程安全的。而且,与 spawn 类似,子进程只会继承必要的资源。

参考:

重新认识 Python(6)多进程编程 - 知乎这一期我们谈谈 Python 的多进程。之前在聊到 GIL 的时候,我们知道 Python 的多线程可以实现并发,但是不能实现并行,因为同一时间只能有一个线程获得 GIL 进行计算。因此,Python 的多线程不能有效利用多个CPU核…icon-default.png?t=N7T8https://zhuanlan.zhihu.com/p/358668412深度强化学习是如何利用GPU进行并行计算的? - 知乎教程简介及目录见:从零实现BERT、GPT及Difussion类算法:文章简介及目录上一篇文章我们实现了模型训练需…icon-default.png?t=N7T8https://www.zhihu.com/question/308716947/answer/3146219927

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值