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

В чем отличие потоков от процессов

Потоки (threads) и процессы (processes) — это способы выполнения кода параллельно, но с ключевыми различиями:

  • Память: Потоки разделяют память процесса, в котором они созданы, что упрощает обмен данными, но требует синхронизации (например, через threading.Lock). Процессы имеют независимую память, обмен данными сложнее (используют multiprocessing.Queue, Pipe или shared memory).
  • GIL: В Python потоки ограничены Global Interpreter Lock (GIL), что мешает настоящему параллелизму для CPU-bound задач. Процессы обходят GIL, так как у каждого свой интерпретатор.

  • Создание: Потоки легче (меньше накладных расходов), процессы тяжелее, но изолированы.

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

python
import threading

def worker():
    print("Thread working")

t = threading.Thread(target=worker)
t.start()
t.join()

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

python
from multiprocessing import Process

def worker():
    print("Process working")

p = Process(target=worker)
p.start()
p.join()

Выбор зависит от задачи: потоки для I/O-bound, процессы для CPU-bound.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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