python 队列是否使用 GIL?
Does python queue use the GIL?
python thread safe queue是使用GIL,还是使用自己的同步机制?
我想知道因为我有一个系统如下:
- 2 个线程读写一个队列
- 2 个不相关的线程做自己的事情,同时通过 GIL 进行同步
我想知道线程对是否会通过锁定机制相互影响。
基于队列的source code我们可以推导出python的安全队列是使用python线程锁实现的,它只会阻塞等待队列对象的线程。
虽然他们没有显式使用 GIL,但重要的是要知道在阻塞代码中执行也会触发 GIL,因为 任何 代码访问变量都会触发吉尔。如有必要,您可以在 gil 浏览器上记录自己 this question
python thread safe queue是使用GIL,还是使用自己的同步机制?
我想知道因为我有一个系统如下:
- 2 个线程读写一个队列
- 2 个不相关的线程做自己的事情,同时通过 GIL 进行同步
我想知道线程对是否会通过锁定机制相互影响。
基于队列的source code我们可以推导出python的安全队列是使用python线程锁实现的,它只会阻塞等待队列对象的线程。
虽然他们没有显式使用 GIL,但重要的是要知道在阻塞代码中执行也会触发 GIL,因为 任何 代码访问变量都会触发吉尔。如有必要,您可以在 gil 浏览器上记录自己 this question