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

В чём разница между многопроцессностью и многопоточностью

Многопроцессность и многопоточность — это два подхода к параллельному выполнению задач, но с разной организацией памяти и изоляцией.

Многопроцессность:

  • Каждый процесс имеет свою собственную память (изолированное адресное пространство).
  • Более устойчив к сбоям (падение одного процесса не влияет на другие).
  • Затраты на создание и переключение выше из-за разделения памяти.
  • В Python хорошо обходит GIL (Global Interpreter Lock), так как каждый процесс имеет свой интерпретатор.

Многопоточность:

  • Потоки разделяют общую память (одно адресное пространство).
  • Легче обмениваться данными между потоками, но требуется синхронизация.
  • В Python потоки ограничены GIL, что делает их неэффективными для CPU-задач (подходят для I/O-bound задач).

Пример с потоками:

python
import threading

def task():
    print("Thread running")

thread = threading.Thread(target=task)
thread.start()

Пример с процессами:

python
import multiprocessing

def task():
    print("Process running")

process = multiprocessing.Process(target=task)
process.start()
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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