Встречается на 1% собеседований по Python
В чём разница между многопроцессностью и многопоточностью
Многопроцессность и многопоточность — это два подхода к параллельному выполнению задач, но с разной организацией памяти и изоляцией.
Многопроцессность:
- Каждый процесс имеет свою собственную память (изолированное адресное пространство).
- Более устойчив к сбоям (падение одного процесса не влияет на другие).
- Затраты на создание и переключение выше из-за разделения памяти.
- В 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()
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
Похожие вопросы
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы