为什么说python多线程是鸡肋。有一个很重要的原因是:python无法发挥多核cpu的性能优势。
对于后面的说法(即:python无法发挥多核cpu的性能优势),我是赞同的。但因此得出结论:python多线程是鸡肋却还有待商榷。
首先我们要知道为什么python无法发挥多核cpu的性能优势?因为python(这里指cpython)有一个叫做GIL的东西,名叫全局解释器锁。它是在解释器层面添加了一个锁,好处就是在一定程度上保证了线程的安全,但带来的影响就是哪怕你cpu再多,资源再丰富,同一时间解释器也只能运行一个线程。
但是我们的程序一般分为两种,cpu密集型和io密集型。
常见的cpu密集型一般和各种计算有关,比如视频解码。
常见的io密集型有数据库操作,文件读写
有必要强调一点,我认为,io密集型不是说反复的去读写文件。而是指在一段时间内,程序运行的大部分时间段是用在io操作上
对于cpu密集型程序来说,python确实没有太好的办法。原因如上,GIL的存在显示了cpu的发挥
但是对于io密集型程序来说,python还是有一定意义的,因为io密集型程序,比如在文件读写过程其实有一部分时间是要用来等待的,那这部分等待时间就可以用来执行其他io操作。这也可以提升io程序执行效率
python的多线程是不是鸡肋?
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 最近在看Python的多线程,经常我们会听到老手说:“Python下多线程是鸡肋,推荐使用多进程!”,但是为什么这...
- 转载自 http://bbs.51cto.com/thread-1349105-1.html参考:Python多线...
- Python多线程的一些理解: 1.多线程采用的是分时复用技术,即不存在真正的多线程,cpu做的事是快速地切换线程...