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

Какие знаешь способы мультипроцессорного выполнения задач

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

  1. Модуль multiprocessing - создает отдельные процессы с собственным интерпретатором и памятью:
python
from multiprocessing import Pool

def square(x):
    return x * x

if __name__ == '__main__':
    with Pool(4) as p:
        print(p.map(square, [1, 2, 3, 4]))
  1. Модуль concurrent.futures - высокоуровневый интерфейс для пула процессов/потоков:
python
from concurrent.futures import ProcessPoolExecutor

with ProcessPoolExecutor() as executor:
    results = executor.map(square, [1, 2, 3, 4])
  1. Класс Process - ручное создание процессов:
python
from multiprocessing import Process

p = Process(target=square, args=(5,))
p.start()
p.join()
  1. Очереди (Queue) - для обмена данными между процессами.

  2. Разделяемая память (Value, Array) - для совместного доступа к данным.

Основные отличия от многопоточности:

  • Полная изоляция памяти
  • Нет проблем с GIL
  • Большие накладные расходы на создание
  • Лучше подходит для CPU-bound задач
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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