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