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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • js获取当前日期时间「建议收藏」

    js获取当前日期时间「建议收藏」functionThistime(){//当前日期vardate=newDate();varyear=date.getFullYear();varmonth=date.getMonth()+1;varday=date.getDate();varmytime=date.toLocaleTimeString();//获取当前时间//myDate.toLocaleString()

    2025年7月11日
    4
  • executorservice和executor_source counter

    executorservice和executor_source counter1、创建一个WorkerThread类,表示执行任务publicclassWorkerThreadimplementsRunnable{ @Override publicvoidrun(){ System.out.println("当前时间:"+System.currentTimeMillis()+"线程名称:" +Thread.currentT…

    2022年9月10日
    3
  • 什么是Mock测试?

    什么是Mock测试?mock测试:就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。mock对象:这个虚拟的对象就是mock对象。mock对象就是真实对象在调试期间的代替品。mock对象使用范畴:真实对象具有不可确定的行为,产生不可预测的效果,(如:股票行情,天气预报)真实对象很难被创建的真实对象的某些行为很难被触发真实对象实际上…

    2022年6月20日
    40
  • 偏度(skewness)和峰度(kurtosis)

    偏度(skewness)和峰度(kurtosis)偏度偏度(skewness),是统计数据分布偏斜方向和程度的度量,是统计数据分布非对称程度的数字特征。定义上偏度是样本的三阶标准化矩。偏度定义中包括正态分布(偏度=0),右偏分布(也叫正偏分布,其偏度>0),左偏分布(也叫负偏分布,其偏度<0)。Python代码实现方法:pandas的Series数据结构可以直接调用skew()方法来查看df.iloc[…

    2025年8月23日
    1
  • 数据建模方法及步骤图_comsol建模步骤教程

    数据建模方法及步骤图_comsol建模步骤教程何为建模?数据几乎总是用于两种目的:操作型记录的保存和分析型决策的制定。简单来说,操作型系统保存数据,分型型系统使用数据。前者一般仅反映数据的最新状态,按单条记录事务性来处理;其优化的核心是更快地处理事务。后者往往是反映数据一段时间的状态变化,按大批量方式处理数据;其核心是高性能、多维度处理数据。通常我们将操作型系统简称为OLTP(On-LineTransactionProcessing)…

    2022年9月16日
    3
  • JavaScript详细解析

    JavaScript详细解析文章目录1、JavaScript详细解析1.1、JavaScript介绍1.2、快速入门引入js的方式一:内部方式引入js的方式一:外部方式1.3、开发环境搭建1.4、快速入门总结2、JavaScript基本语法2.1、注释2.2、输入输出语句2.3、变量和常量2.4、原始数据类型和typeof方法2.4.1、原始数据类型2.4.2、typeof2.5、运算符2.6、流程控制和循环语句2.7、数组2.8、函数2.9、小结3、JavaScriptDOM3.1、DOM介绍3.2、Element元素的获取操作3

    2022年7月17日
    13

发表回复

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

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