Встречается на собеседованиях • сегодня
В чем разница между модулями multiprocessing (многопроцессорностью) и threading (поточность)
Основное отличие в том, что multiprocessing использует отдельные процессы с собственным интерпретатором Python и памятью, а threading - потоки в рамках одного процесса, разделяющие память.
Ключевые различия:
- GIL: Потоки подвержены Global Interpreter Lock (GIL), что ограничивает параллелизм для CPU-bound задач. Процессы обходят GIL.
- Память: Процессы изолированы, потоки разделяют память (нужны механизмы синхронизации).
- Затраты: Создание процессов дороже, чем потоков.
Пример CPU-bound задачи (лучше multiprocessing):
python
from multiprocessing import Pool
def square(x):
return x * x
with Pool(4) as p:
print(p.map(square, range(10)))Пример I/O-bound задачи (подойдут потоки):
python
from threading import Thread
import requests
def fetch(url):
response = requests.get(url)
print(response.status_code)
threads = [Thread(target=fetch, args=("https://example.com",)) for _ in range(5)]
for t in threads: t.start()
for t in threads: t.join()
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы