Использует ли очередь Python GIL? - PullRequest
0 голосов
/ 12 мая 2019

Использует ли Python потокобезопасная очередь GIL или использует свой собственный механизм синхронизации?

Я хочу знать, потому что у меня есть следующая система:

  • 2 потока читают и записывают в очередь
  • 2 несвязанных потока делают свое дело при синхронизации через GIL

Я хочу знать, будут ли пары нитей влиять друг на друга через механизмы блокировки.

1 Ответ

0 голосов
/ 12 мая 2019

Исходя из исходного кода очереди, мы можем сделать вывод, что безопасные очереди Python реализованы с использованием потоковых блокировок Python, которые блокируют только поток, ожидающий объект очереди.

Пока они это делаютне используйте явно GIL, важно знать, что выполнение в заблокированном коде, тем не менее, будет запускать GIL, так как любой код доступа к переменным вызывает GIL.При необходимости вы можете задокументировать себя в gil, просматривая этот вопрос

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...