Python общая блокировка между потоками и циклами событий - PullRequest
0 голосов
/ 28 января 2020

Рассмотрим ситуацию, когда у меня есть основной поток с одним (или более asyn c eventloops) и несколькими python потоками, работающими одновременно.

Я хочу иметь блокировку, которая работает как внутри потоков, так и внутри циклов событий. Например, когда блокировка получена в асинхронном c EventL oop, другие асинхронные c циклы и потоки ожидают точно такой же блокировки.

Как мне реализовать это?

Я знаю о threading.Lock и asyncio.Lock. Но я не уверен, смогу ли я использовать threading.Lock внутри задачи asyn c или наоборот.

1 Ответ

0 голосов
/ 01 февраля 2020

Мне пришла в голову идея создать новый класс Lock или Queue, в котором есть два объекта для каждого типа обработки.

Но некоторые люди уже реализовали эту идею и даже больше. например:

...