Гвидо Ван Россум пару лет назад поднял вопрос:
👨🏻🔧 Рассмотрим типичного воркера, который получает элементы из asyncio.Queue. Это может быть такой цикл: ❓ Как производитель мог бы указать воркеру, что рабочих элементов не осталось? 👥 asyncio.Queue- это объект очереди, и представляет собой механизм для передачи данных между асинхронными задачами. Очереди обеспечивают асинхронный обмен данными между задачами, где одна может поместить данные в очередь (enqueue), а другая может извлечь их (dequeue) методами put() и get() соответственно. 👉 Пример использования: 🤔 При работе с очередями нередко случается, что в какой-то момент производитель перестает производить данные навсегда, или потребитель перестает их потреблять. Как узнать, когда все элементы в очереди были обработаны потребителями?
💤 Люди, чтобы решить эту проблему, используют свои "костыли", но с подачи Гвидо добавили метод shutdown в класс asyncio.Queue, который завершает очередь. При попытке получить данные из очереди или