2016 - 2024

感恩一路有你

python log python多线程为什么没有并行?

浏览量:1437 时间:2021-03-17 17:35:59 作者:admin

python多线程为什么没有并行?

1. 什么是吉尔?

  Gil的全名是global interpreter lock(global interpreter lock),源于Python设计之初的考虑和对数据安全的决策。

2. 每个CPU只能同时执行一个线程

  事实上,单核CPU下的多线程只是并发,而不是并行。并发性和并行性是同时处理多个请求的概念。但是并发和并行之间有区别。并行意味着两个或多个事件同时发生,而并发意味着两个或多个事件在同一时间间隔发生。

百度搜索圈t社区(www.aiquanti.com)免费视频教程

这句话是片面的:

Gil lock限制进程中的不同线程只能同时占用一个CPU。可以看出,多线程用于处理计算密集型任务。在Python中,多个线程需要等待对方获得CPU资源。在这个时候,多线程不能并行,我们真的不具备预期的多线程能力。

但是,如果执行的是Io密集型任务,多个线程之间没有太多CPU资源争用,更多的是每个线程都在进行Io传输和等待,此时,多线程的能力还是可以发挥出来的。

所以我们不能简单地说Python的多线程是鸡肋,但是它的设计限制了它的应用场景。

python log python modbus python logger模块

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。