Поскольку поток – это самостоятельно выполняемая программа, то она имеет свой локальный контекст.
Модель потока
С каждым потоком связывается:
• Счетчик выполнения команд;
• Регистры для текущих переменных;
• Стек;
• Состояние.
Потоки делят между собой элементы своего процесса:
• Адресное пространство;
• Глобальные переменные;
• Открытые файлы;
• Таймеры;
• Семафоры;
• Статистическую информацию.
Глобальный контекст потока совпадает с глобальным контекстом всего процесса. Поток, порождаемый процессом работ в адресном пространстве процесса и использует и изменяет его глобальные переменные, файлы, данные, семафоры, информацию. Если процесс запускает несколько потоков, которые влияют на изменение элементов контекста, может возникнуть ситуация, в которой два потока будут одновременно взаимодействовать с одним и тем же элементом, вызывая ситуацию, которая называется конфликтом. Проблема конфликта решается при помощи специального механизма семафоров, предложенного Дейкстрой. Потоки взаимодействуют с элементами процесса(ресурсами) асинхронно. Синхронизацию потоков при их взаимодействии с ресурсами процесса осуществляет механизм семафоров.