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

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

Многопоточность (threading) обычно потребляет меньше ресурсов, чем многопроцессность (multiprocessing), так как потоки разделяют общее адресное пространство, а процессы имеют отдельную память. Однако в Python из-за GIL (Global Interpreter Lock) потоки не выполняются параллельно в CPU-bound задачах, а переключаются.

Для CPU-bound задач лучше использовать multiprocessing (реальная параллельность), но это требует больше памяти. Для I/O-bound задач подходит threading (меньше накладных расходов).

Пример:

python
# CPU-bound: multiprocessing
from multiprocessing import Pool

def square(x):
    return x * x

with Pool(4) as p:
    print(p.map(square, range(10)))

# I/O-bound: threading
import threading

def fetch(url):
    # имитация I/O операции
    print(f"Fetching {url}")

threads = [threading.Thread(target=fetch, args=(url,)) for url in urls]
for t in threads:
    t.start()
for t in threads:
    t.join()
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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