Раздел 45 · Python backend: Тарбадель

Свой event loop: select и генераторы

middle-senior~30 мин

без входаВойди, чтобы отмечать прогресс, вести заметки и решать задачи в редакторе. войти

Тысяча потоков съела всю память машины, и обход упал на полпути. Аурия даже не смотрит на журнал ошибок. Она идёт по тоннелю быстрым шагом, на ходу стучит в каждую дверь костяшками пальцев и не останавливается. За спиной одна из дверей скрипит, и Аурия возвращается к ней.

Узор читает журнал Призрака уже по четырём адресам и хмурится: копии не ждут друг друга. Каждая отправляет запрос и сразу идёт дальше, не зная, что делает соседняя.

В прошлом уроке ты завёл несколько голов, а до того несколько курьеров. Оба способа дорогие: каждый поток и каждый процесс держит память и место в системе. Сегодня курьер будет один, и всё же у тысячи дверей сразу. Ты построишь сам то, что в Python называется циклом событий, из двух деталей: системного вызова select и генераторов.

урок из курса

Урок из курса «Python backend: Тарбадель». Курс покупается один раз и остаётся навсегда: 500 ₽.

Оплата пока не подключена: премиум и курсы открываются промокодом.