python log python多线程为什么没有并行?
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模块
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。