Различия между методами синхронизации потоков в Python? - PullRequest
0 голосов
/ 30 января 2020

Мне любопытно узнать о различных методах синхронизации потоков, особенно когда речь идет о производительности. Насколько я понимаю, блокировка basi c не очень мощная и может иметь некоторые проблемы, поэтому RLock, похоже, предпочтительнее. Семафоры, класс threading.Event и класс threading.Condition хороши, но ожидающий поток по сути опрашивает бесконечно, пока не сможет получить блокировку, которая может тратить энергию процессора.

Я понимаю, что-то вроде Можно использовать очередь, которая имеет встроенную функциональность для блокировки при доступе, но какие методы использует очередь? Другие потоки все еще опрашивают очередь, ожидающую доступа, или это простая блокировка?

Есть ли что-то, что обеспечивает правильную блокировку, но без потери производительности, например, опрос ЦП для доступа к блокировке?

...