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

В чем разница между потоками и механизмом async/await в Python

Потоки (threading) и async/await работают с конкурентностью, но по-разному:

  • Потоки используют системные потоки ОС, переключаются планировщиком. Подходят для CPU-bound задач, но имеют накладные расходы на переключение и проблемы с GIL (Global Interpreter Lock), который ограничивает параллельное выполнение Python-кода.
  • Async/await (asyncio) — однопоточный механизм, переключает задачи на уровне событийного цикла. Эффективен для IO-bound задач (сетевые запросы, файловые операции), но не подходит для CPU-bound операций, так как не использует дополнительные ядра.

Пример с потоками:

python
import threading

def task():
    print("Thread running")

thread = threading.Thread(target=task)
thread.start()

Пример с asyncio:

python
import asyncio

async def task():
    print("Coroutine running")

await task()  # в асинхронной функции

Выбор зависит от задачи: потоки — для параллелизма с GIL, async — для эффективного ожидания IO.

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

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

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

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