前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python的多线程是否没有用了[通俗易懂]

python的多线程是否没有用了[通俗易懂]

作者头像
全栈程序员站长
发布2022-09-06 17:47:03
4390
发布2022-09-06 17:47:03
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

python的多线程是否就完全没有用了呢?

相同的代码,为何有时候多线程会比单线程慢,有时又会比单线程快? 这主要跟运行的代码有关: 1、 CPU密集型代码 (各种循环处理、计数等等 ),在这种情况下,由于计算工作多, ticks计数很快就会达到 100阈值,然后触发 GIL的释放与再竞争 (多个线程来回切换当然是需要消耗资源的),所以 python下的多线程遇到 CPU密集型代码时,单线程比多线程效率高。 IO密集型代码 (文件处理、网络爬虫等 ),多线程能够有效提升效率 (单线程下有 IO操作会进行 IO等待,造成不必要的时间浪费,而开启多线程能在 线程 A等待时,自动切换到线程 B,可以不浪费 CPU的资源,从而能提升程序执行效率 )。

进行 IO密集型的时候可以进行分时切换 所有这个时候多线程快过单线程( 5)如果 python想充分利用多核 CPU,可以采用多进程, 每个进程有各自独立的 GIL,互不干扰,这样就可以真正意义上的并行执行,所以在 python中,多进程的执行效率优于多线程 (仅仅针对多核 CPU而言 )。 所以在多核 CPU下,想做并行提升效率,比较通用的方法是使用多进程,能够有效提高执行效率。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/155877.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档