Встречается на собеседованиях • сегодня
Расскажи про эволюцию асинхронности
В Python асинхронность прошла несколько этапов:
-
Потоки (Threading)
Просто, но есть GIL (Global Interpreter Lock), который ограничивает параллельное выполнение.pythonimport threading def task(): print("Hello") thread = threading.Thread(target=task) thread.start() -
Мультипроцессинг (Multiprocessing)
Обходит GIL, но тяжеловесен из-за разделения памяти.pythonfrom multiprocessing import Process p = Process(target=task) p.start()
-
Корутины (asyncio, Python 3.5+)
Легковесные потоки (корутины) сasync/await. Эффективны для I/O-bound задач.pythonimport asyncio async def task(): print("Hello") await asyncio.gather(task()) -
Concurrent.futures
Унифицированный интерфейс для потоков/процессов.pythonfrom concurrent.futures import ThreadPoolExecutor with ThreadPoolExecutor() as executor: executor.submit(task)
Современный Python чаще использует asyncio для асинхронного I/O и multiprocessing для CPU-bound задач.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы