Этот вопрос проверяет понимание различий между процессами и потоками на уровне операционной системы.
Процесс — это отдельная программа с собственной памятью. Поток — более лёгкая единица исполнения внутри процесса, которая делит память с другими потоками. Потоки легче и быстрее, но могут вызывать проблемы синхронизации.
Процесс:
Имеет собственное адресное пространство
Изолирован от других процессов
Создаётся с помощью fork или системных вызовов
Взаимодействие через IPC (интерпроцессное взаимодействие)
Поток (Thread):
Делит память с другими потоками в том же процессе
Быстрее создаётся и переключается
Общие данные → нужны мьютексы или другие механизмы синхронизации
Пример:
Запуск двух программ (два процесса): curl, vim
Потоки внутри одного процесса: в Go — горутины
Когда использовать:
Потоки — для лёгких, параллельных задач внутри одного приложения
Процессы — когда нужна изоляция (например, запуск стороннего скрипта)