加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python如何处理线程锁定/上下文切换?

发布时间:2020-12-20 11:46:17 所属栏目:Python 来源:网络整理
导读:我观看了关于GIL的精彩演示,以及在解释器中运行时,一次只能运行1个单线程.对于线程之间的切换,python似乎也不是很聪明. 如果我正在线程化一些仅在解释器中运行的操作,并且它不是特别重CPU,并且我使用一个线程锁,其中一次只能运行一个线程用于这个相对较短的
我观看了关于GIL的精彩演示,以及在解释器中运行时,一次只能运行1个单线程.对于线程之间的切换,python似乎也不是很聪明.

如果我正在线程化一些仅在解释器中运行的操作,并且它不是特别重CPU,并且我使用一个线程锁,其中一次只能运行一个线程用于这个相对较短的解释器绑定操作,那么该锁实际上是否会什么运行得慢?而不是如果没有必要的锁,并且所有线程可以同时运行.

如果只有1个线程被锁定,那么python解释器是否会知道上下文切换?

编辑:
通过’让事情变慢’我的意思是如果python是上下文切换到一堆锁定的线程,即使线程实际上没有运行,也可能会降低性能

解决方法

python is not very intelligent about switching between threads

Python线程以某种方式工作:-)

if I use a thread lock where only 1 thread can run at a time… will that lock actually make anything run slower

呃,不,因为没有别的东西可以运行,所以没有其他东西可以运行得更慢.

If all but 1 threads are locked,will the python interpreter know not to context switch?

是.内核知道哪些线程可以运行.如果没有其他线程可以运行,那么逻辑上讲(就线程而言)python解释器将不会从唯一可运行的线程上下文切换.线程不知道它什么时候被切断(怎么可能,它没有运行).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读