Процесс — это выполняющаяся программа, имеющая собственное адресное пространство, стек, открытые файловые дескрипторы и прочие ресурсы операционной системы. Это изолированный контейнер для выполнения кода.
Поток (нить) — это наименьшая исполняемая единица в составе процесса. Процесс может иметь один или несколько потоков, которые разделяют общее адресное пространство и ресурсы процесса, но каждый поток имеет собственный стек вызовов, счетчик команд (program counter) и регистры.
Основные отличия:
Признак | Процесс | Поток |
---|---|---|
Адресное пространство | Собственное, изолированное | Разделяет пространство процесса |
Ресурсы | Собственный набор (файлы, память и др.) | Разделяет ресурсы процесса |
Создание | Дорогостоящий процесс (копирование ресурсов) | Относительно легкое (требует меньше ресурсов) |
Переключение контекста | Долгое, требует переключения адресного пространства | Быстрое, происходит |
Процесс — это выполняющаяся программа, имеющая собственное адресное пространство, стек, открытые файловые дескрипторы и прочие ресурсы операционной системы. Это изолированный контейнер для выполнения кода.
Поток (нить) — это наименьшая исполняемая единица в составе процесса. Процесс может иметь один или несколько потоков, которые разделяют общее адресное пространство и ресурсы процесса, но каждый поток имеет собственный стек вызовов, счетчик команд (program counter) и регистры.
Основные отличия:
Признак | Процесс | Поток |
---|---|---|
Адресное пространство | Собственное, изолированное | Разделяет пространство процесса |
Ресурсы | Собственный набор (файлы, память и др.) | Разделяет ресурсы процесса |
Создание | Дорогостоящий процесс (копирование ресурсов) | Относительно легкое (требует меньше ресурсов) |
Переключение контекста | Долгое, требует переключения адресного пространства | Быстрое, происходит |
Register or sign in to get access to full answers for all questions from the question bank.