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

Какие есть особенности у процессов и потоков в Python

В Python процессы и потоки имеют ключевые различия из-за GIL (Global Interpreter Lock):

Потоки:

  • Используют общую память (легко обмениваются данными)
  • GIL ограничивает выполнение только одного потока за раз (CPU-bound задачи не ускоряются)
  • Подходят для I/O-bound задач (ожидание сети/диска)
  • Меньшие накладные расходы на создание
python
import threading
def worker():
    print("Thread working")
t = threading.Thread(target=worker)
t.start()

Процессы:

  • Полностью изолированы (требуют спец. механизмов для обмена данными)
  • Не ограничены GIL (параллельное выполнение CPU-bound задач)
  • Большие накладные расходы на создание
  • Требуют больше памяти
python
from multiprocessing import Process
def worker():
    print("Process working")
p = Process(target=worker)
p.start()

Для CPU-bound задач лучше multiprocessing, для I/O-bound - threading. Для современных задач часто используют concurrent.futures или asyncio.

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

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

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

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