Встречается на собеседованиях • сегодня

Чем асинхронность лучше потоков

Асинхронность лучше потоков в Python в нескольких аспектах:

  1. Эффективность - асинхронный код работает в одном потоке, избегая накладных расходов на переключение контекста и GIL
  2. Масштабируемость - можно обрабатывать тысячи соединений одновременно без создания тысяч потоков
  3. Простота - нет проблем с синхронизацией, race condition, deadlocks
  4. Память - потребляет меньше памяти, чем эквивалентное количество потоков

Пример асинхронного сервера:

python
import asyncio

async def handle_client(reader, writer):
    data = await reader.read(100)
    writer.write(data)
    await writer.drain()
    writer.close()

async def main():
    server = await asyncio.start_server(handle_client, '127.0.0.1', 8888)
    async with server:
        await server.serve_forever()

asyncio.run(main())

Но асинхронность не заменяет потоки полностью - для CPU-bound задач лучше использовать процессы или C-расширения.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы