为了账号安全,请及时绑定邮箱和手机立即绑定

深入浅出剖析Python的全局解释锁GIL

难度中级
时长 3小时 0分
学习人数
综合评分8.17
8人评价 查看评价
8.2 内容实用
8.8 简洁易懂
7.5 逻辑清晰

最新回答 / 慕侠1360162
IO密集型,确实多线程耗时更短CPU核数可以理解为里面有几个工人,单核里面只有一个,多核有n个,对于n个工时量的项目,单核需要n小时完成,而多核有n个工人同时干,只需要一个小时就能完成;但python中由于GIL的存在,同时只能有一个线程运行。就好多核里面的n个工人,但同时只能有1个人工作,其他只能划划水,多核的优势完全被浪费掉了。而且还多了几个工人去抢着工作耗费的无意义时间,也就是你所说的时间片的切换耗时,所以导致耗费时间比单线程要更多。

最新回答 / 慕先生4398378
因为这"老师"有些地方讲错了python用threading.Thread形式开出来的线程, 都活在同一个核上, 所以共用一个GIL而用multiprocessing.Process这样开出来的进程, 是互相独立的(可以打印pid号发现), 每个进程使用各自的GIL, 进程间的GIL不相干.
课程须知
1、对Python基础知识已经掌握。 2、对操作系统进程,线程等基础有所了解。
老师告诉你能学到什么?
1、GIL到底是什么 2、操作系统中的进程和线程,线程所面临的问题 3、站在历史的角度来审视:GIL的产生原因 4、解释GIL存在的问题及Python的解决方案 5、剖析Python多进程,多线程,单进程单线程 6、CPU bound和IO bound 7、如何突破GIL 8、GIL具体运用场景

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消