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

python的多线程是否没有用了[通俗易懂]python的多线程是否就完全没有用了呢?相同的代码,为何有时候多线程会比单线程慢,有时又会比单线程快? 这主要跟运行的代码有关: 1、 CPU密集型代码 (

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

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

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

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

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • JSONObject与JSONArray的使用

    JSONObject与JSONArray的使用

    2021年12月9日
  • SqlServer时间与字符串相互转换[通俗易懂]

    SqlServer时间与字符串相互转换[通俗易懂]convert(目标类型[datatime/varchar],’输入内容'[时间/字符串],格式); –字符串转为时间类型(当表字段为时间格式时使用) –1.Style=101时,表示日期字符串为:mm/dd/yyyy格式SELECTCONVERT(datetime,’11/1/2003′,101)–结果:2003-11-0100:00:00.000应用:…

    2022年10月8日
  • 撸完之后

    撸完之后坚持了一周的加班,今天终于告一段落了,回家自己亲手做了一顿饭,吃完之后,开始无聊的无聊。

    2022年8月22日
  • ExecuteNonQuery()_sql存储过程返回值

    ExecuteNonQuery()_sql存储过程返回值本文实例讲述了C#中ExecuteNonQuery()返回值注意点。对于C#数据库程序设计有一定的借鉴价值。分享给大家供大家参考之用。具体分析如下:首先,在查询某个表中是否有数据的时候,我们通常用ExecuteNonQuery(),并通过判断值是否大于0来判断数据的存在与否。结果与我所设想的很不一致,调试时才发现,其执行后返回的结果是-1,对此我很是不理解,回头查了下资料,如下显示:SqlComm…

    2022年9月11日
  • jboss安装与配置_andrax安装出错

    jboss安装与配置_andrax安装出错一.              下载与安装JBoss在本文中,我们下载的JBoss版本为:4.2.1.GA。下载地址:http://www.jboss.org/jbossas/downloads/在如上的下载页中下载JBoss-4.2.1.GA.zip文件。下载完成后,将其解压缩后即可完成安装,解压缩后将其放置到一个不带空格的目录(若目录带有空格,例如:C:

    2022年10月3日
  • idea中edit configuration_pycharm和vim哪个好

    idea中edit configuration_pycharm和vim哪个好keyconflictswithIDEIDEmenu:file->settings->othersettings->VimEmulationconfigfile~/.ideavimrcusesystemclipboardasunnamedregister~/.ideavimrc:setclipboard^=unnamed,unnamedplus

    2022年10月1日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号