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

Какие знаешь механизмы параллельности в Python

В Python есть несколько механизмов для работы с параллельностью:

  1. Потоки (threading) – легковесные потоки, выполняются в одном процессе. Из-за GIL (Global Interpreter Lock) не подходят для CPU-задач, но хороши для I/O-bound задач.
    python
    import threading
    def worker():
        print("Thread working")
    thread = threading.Thread(target=worker)
    thread.start()
  1. Процессы (multiprocessing) – обходят GIL, так как каждый процесс имеет свой интерпретатор. Подходят для CPU-bound задач.

    python
    from multiprocessing import Process
    def worker():
        print("Process working")
    process = Process(target=worker)
    process.start()
  2. Асинхронность (asyncio) – однопоточный подход для I/O-bound задач с использованием корутин и event loop.

    python
    import asyncio
    async def worker():
        print("Async working")
    asyncio.run(worker())
  3. concurrent.futures – высокоуровневый API для пулов потоков/процессов.

    python
    from concurrent.futures import ThreadPoolExecutor
    with ThreadPoolExecutor() as executor:
        executor.submit(lambda: print("Future working"))

Выбор зависит от задачи: I/O-bound – threading/asyncio, CPU-bound – multiprocessing.

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

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

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

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