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

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

В Python есть несколько подходов для конкурентного выполнения:

  1. Потоки (threading)
    Подходит для I/O-bound задач (сетевые запросы, чтение файлов).
    python
    import threading
    def task():
        print("Выполняется в потоке")
    thread = threading.Thread(target=task)
    thread.start()
  1. Процессы (multiprocessing)
    Для CPU-bound задач (тяжелые вычисления).

    python
    from multiprocessing import Process
    def task():
        print("Выполняется в процессе")
    p = Process(target=task)
    p.start()
  2. Пулы потоков/процессов
    Использует ThreadPoolExecutor или ProcessPoolExecutor из concurrent.futures:

    python
    from concurrent.futures import ThreadPoolExecutor
    with ThreadPoolExecutor() as executor:
        executor.map(lambda x: x**2, [1, 2, 3])
  3. GIL (Global Interpreter Lock)
    Ограничивает потоки в Python (только один поток выполняет байткод). Процессы обходят GIL, так как у каждого свой интерпретатор.

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

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

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

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

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