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

В чем разница между потоками и асинхронностью в Python

Потоки (threading) и асинхронность (asyncio) решают задачи конкурентности, но по-разному:

  1. Потоки:
  • Используют системные потоки ОС (GIL ограничивает параллелизм в CPU-bound задачах)
  • Подходят для I/O-bound операций, но могут создавать race conditions
  • Переключение между потоками управляется ОС
python
import threading

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

thread = threading.Thread(target=task)
thread.start()
  1. Асинхронность:
  • Работает в одном потоке через event loop
  • Использует корутины (async/await) для неблокирующего выполнения
  • Эффективнее для I/O-bound задач с большим количеством соединений
  • Избегает накладных расходов на переключение потоков
python
import asyncio

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

await task()

Ключевое отличие: потоки могут выполняться параллельно (хотя GIL ограничивает), а асинхронность - это кооперативная многозадачность в одном потоке.

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

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

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

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