python的多线程是否没有用了

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

对于相同的代码,为什么多线程有时比单线程慢,有时比单线程快?

[En]

With the same code, why is it that sometimes multithreading is slower than single thread and sometimes faster than single thread?

这主要与代码运行有关:

[En]

This is mainly related to the code running:

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

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

Original: https://www.cnblogs.com/wangkun122/p/11095566.html
Author: 王大拿
Title: python的多线程是否没有用了

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/7883/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

发表回复

登录后才能评论
免费咨询
免费咨询
扫码关注
扫码关注
联系站长

站长Johngo!

大数据和算法重度研究者!

持续产出大数据、算法、LeetCode干货,以及业界好资源!

2022012703491714

微信来撩,免费咨询:xiaozhu_tec

分享本页
返回顶部