Встречается на собеседованиях • сегодня
В чем разница между асинхронностью и многопоточностью
Асинхронность и многопоточность - разные подходы к параллельному выполнению задач:
Многопоточность использует несколько потоков ОС, которые могут выполняться параллельно на разных ядрах CPU. Потоки разделяют память процесса, что требует синхронизации (lock, mutex). В Python из-за GIL настоящий параллелизм возможен только для I/O-bound задач или при использовании multiprocessing.
Асинхронность (на основе event-loop) выполняет задачи в одном потоке, переключаясь между ними при ожидании I/O. Подходит для I/O-bound задач с большим количеством ожиданий. Не требует синхронизации, но весь код должен быть неблокирующим.
Пример асинхронности:
python
async def fetch_data():
await asyncio.sleep(1) # Неблокирующее ожидание
return "data"Пример многопоточности:
python
def worker():
time.sleep(1) # Блокирующее ожидание
return "data"
thread = threading.Thread(target=worker)
thread.start()
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы