python的多线程是不是鸡肋?

为什么说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程序执行效率

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容