Популярный вопрос на собеседовании: В чем разница между Process и Thread?
Чтобы лучше понять этот вопрос, давайте сначала разберемся, что такое программа. Программа - это исполняемый файл, содержащий набор инструкций и пассивно хранящийся на диске. Одна программа может иметь несколько процессов. Например, браузер Chrome создает отдельный процесс для каждой отдельной вкладки.
Процесс означает, что программа находится в процессе выполнения. Когда программа загружается в память и становится активной, она превращается в процесс. Процессу требуются некоторые важные ресурсы, такие как регистры, счетчик программ и стек.
Поток - это наименьшая единица выполнения в рамках процесса.
? Взаимосвязь между программой, процессом и потоком:
? Программа содержит набор инструкций.
? Программа загружается в память. Она становится одним или несколькими выполняющимися процессами.
? Когда процесс запускается, ему выделяются память и ресурсы. Процесс может иметь один или несколько потоков.
? Основные различия между процессом и потоком:
? Процессы обычно независимы, в то время как потоки существуют как подмножества процесса.
? Каждый процесс имеет собственное пространство памяти. Потоки, принадлежащие одному процессу, делят одну и ту же память.
? Процесс — это тяжеловесная операция. На его создание и завершение требуется больше времени.
? Переключение контекста между процессами более дорогостоящее.
? @bookflow