python队列是否使用GIL?

时间:2019-05-12 10:03:51

标签: python multithreading python-2.7 gil

python thread safe queue使用GIL还是使用自己的同步机制?

我想知道,因为我的系统如下:

  • 2个线程读写队列
  • 2个不相关的线程在通过GIL进行同步的同时做自己的事情

我想知道线程对是否会通过锁定机制相互影响。

1 个答案:

答案 0 :(得分:0)

基于source code队列,我们​​可以推断出python的安全队列是使用python线程锁实现的,这将仅阻塞等待队列对象的线程。

尽管它们未明确使用GIL,但重要的是要意识到,在阻塞代码中执行仍然会触发GIL,因为 any 代码访问变量会触发GIL。如有必要,您可以在gil浏览this question

中记录自己