Классический вопрос на собеседовании: "как один процесс на Python может обслуживать 10 000 одновременных сетевых соединений, если ядро всего одно, а GIL не даёт параллельно исполнять Python-код?" Ответ - event loop, механизм, который лежит в основе asyncio.