Поток исполнения
Поток исполнения или поток управления, также нить или тред (англ. (execution) thread): наименьшая единица обработки машинного кода процесса операционной системой.
Любой процесс содержит исполняемый машинный код, который в фон-неймановской архитектуре последовательно читается из памяти и исполняется. ОС, обеспечивающие многозадачность, могут также обеспечивать чтение и исполнение машинного кода одного и того же процесса в несколько проходов, осуществляемых независимо друг от друга и с произвольных начальных адресов — то есть, в несколько потоков исполнения.
Машинный код любого процесса фактически обрабатывается хотя в одном потоке исполнения, даже если данная ОС такой сущности явно не поддерживает. Множественные потоки, относящиеся к одному и тому же процессу, состязаются между собой за ресурсы, выделяемые операционной системой на обслуживание процесса (квант времени, рабочая память).
Особенности обработки машинного кода в потоках исполнения, и в первую очередь, работа с памятью, формализуются в моделях потоков (thread models), которые могут воплощаться в тех или иных операционных системах.
Некоторые распространённые модели потоков и одноименные среды управления ими: POSIX Threads в ОС семейства UNIX.
Поскольку машинный код программ преимущественно формируется из исходных модулей на языках высокого уровня, то, как правило, каждый поток исполнения в начале его обработки снабжается собственным участком стэковой памяти, для обеспечения работы локальных переменных в более чем одном потоке
Поток–stream и поток–thread
В русскоязычной терминологии следует различать «поток команд», соответствующий английскому слову stream и означающий временну́ю последовательность обработки машинных команд, рассматриваемую на уровне работы оборудования, и «поток исполнения», соответствующий английскому слову thread и означающий независимо осуществляемый проход по машинному коду программы, рассматриваемый на уровне многозадачной операционной системы.
Параллельные вычисления
В архитектурах и моделях параллельных вычислений исполнение программы в несколько потоков на одной машине, обеспеченное средствами ОС, формально соответствует модели МКОД, независимо от количества исполняющего оборудования (процессоров, ядер и под.). Это позволяет производить проектирование и разработку параллельных программ и алгоритмов по модели с общей памятью на последовательных (не-параллельных) ЭВМ.
— Ю.Т.