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

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

Мультипоточность использует несколько потоков выполнения (threads) для параллельной обработки задач, но в Python из-за GIL (Global Interpreter Lock) потоки не выполняются по-настоящему параллельно для CPU-задач. Лучше подходит для I/O-bound задач.

Асинхронность (async/await) использует один поток, переключаясь между задачами при ожидании I/O. Не требует создания потоков, но требует переписывания кода с использованием async/await. Эффективнее для I/O-bound задач.

Пример мультипоточности:

python
from threading import Thread

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

t = Thread(target=task)
t.start()

Пример асинхронности:

python
import asyncio

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

await task()

Ключевые различия:

  • Потоки используют переключение контекста ОС, корутины - кооперативную многозадачность
  • Асинхронность легче по ресурсам
  • Мультипоточность может быть проще для рефакторинга существующего кода
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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