Окт 16

Процессы и потоки

При запуске приложения операционная система Windows создает процесс. Процесс (process) — это совокупность ресурсов, необходимых для выполнения программы. Процесс владеет виртуальным адресным пространством, выполняемым кодом, данными, дескрипторами необходимых объектов и иными ресурсами. Однако сам по себе процесс не выполняется. Вместо этого он запускает единственный поток, который часто называют первичным потоком (primary thread). Если процесс имеет только один первичный поток, то, фактически, понятия «процесс» и «поток» совпадают. Первичный поток может создавать другие потоки, те, в свою очередь, новые потоки и т. д.
Поток {thread) — это основная выполняемая единица, для которой операционная система выделяет процессорное время. Каждый поток работает со своим контекстом. Контекст потока {thread context) — это структура, содержащая значения всех регистров процессора. Кроме того, поток имеет доступ ко всем ресурсам своего процесса, включая память, открытые файлы и другие ресурсы.
Обычно приложение содержит только один процесс, поэтому термины «программа» и «процесс» часто используются как синонимы. В то же время любой поток процесса может создать дочерний процесс, выполняющийся одновременно с родительским процессом.