Я думаю, что все проделали большую работу, отвечая на ваш вопрос. Я просто добавляю больше информации о потоке против процесса в Linux, чтобы прояснить и обобщить некоторые предыдущие ответы в контексте ядра. Итак, мой ответ касается специфичного для ядра кода в Linux. Согласно документации ядра Linux, нет четкого различия между потоком и процессом, за исключением того, что поток использует общее виртуальное адресное пространство в отличие от процесса. Также обратите внимание, что ядро Linux использует термин «задача» для обозначения процесса и потока в целом.
"Нет внутренних структур, реализующих процессы или потоки, вместо этого есть структура task_struct, которая описывает абстрактный модуль планирования, называемый задачей"
Также, согласно Линусу Торвальдсу, вы НЕ должны вообще думать о процессе по сравнению с потоком, потому что он слишком ограничивает, и единственное отличие - это COE или контекст выполнения с точки зрения «отделения адресного пространства от родительского» или общего адресного пространства , На самом деле он использует пример веб-сервера, чтобы выразить свою точку зрения здесь (что настоятельно рекомендуется к прочтению).
Полная информация о документации ядра Linux