Встречается на 3% собеседований по Python
В чем разница между threading и многопроцессингом (multiprocessing) в Python
Основное отличие в том, что threading использует потоки внутри одного процесса, а multiprocessing - отдельные процессы.
Ключевые различия:
- Потоки делят память процесса, процессы имеют независимую память
- В Python из-за GIL потоки не дают выигрыша в CPU-bound задачах
- Multiprocessing лучше для CPU-bound задач, threading - для I/O-bound
- Процессы требуют больше ресурсов для создания
- Обмен данными между процессами сложнее (нужны Pipe, Queue и т.д.)
Пример CPU-bound задачи:
python
# threading (неэффективно из-за GIL)
import threading
def work():
[x**2 for x in range(10_000_000)]
threads = [threading.Thread(target=work) for _ in range(4)]
for t in threads: t.start()
for t in threads: t.join()
# multiprocessing (эффективно)
from multiprocessing import Process
procs = [Process(target=work) for _ in range(4)]
for p in procs: p.start()
for p in procs: p.join()
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
Похожие вопросы
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы