Я пытаюсь найти хорошее определение и понять, что такое поток.
Кажется, что я должен упустить что-то очевидное, но каждый раз, когда я читаю о том, что такое поток, это почти круговое определение, а "поток - это поток выполнения" или "способ разделить на запущенные задачи" ". Ух. А?
Похоже на то, что я прочитал, что нить не является чем-то конкретным, как процесс. Это на самом деле просто концепция. Из того, что я понимаю о том, как это работает, процессор выполняет некоторые команды для программы (которая называется потоком исполнения), а затем, когда ей нужно немного переключиться на обработку для какой-либо другой программы, она сохраняет состояние программу, которую он в настоящее время выполняет для чего-либо (Thread Local Storage), а затем начинает выполнение других инструкций программы. И обратно, и вперед. Таким образом, поток - это просто концепция для "одного из путей выполнения" программы, которая в настоящее время работает.
В отличие от процесса, который действительно является чем-то - это конгломерат ресурсов и т.д.
В качестве примера определения, которое на самом деле не очень помогло мне.,.
От Wikipedia:
"Нить в информатике является короткой для потока выполнения. Темы - это способ разделить программу (называемую" split ") на две или более одновременно (или псевдо-одновременно) запущенных задач. Темы и процессы отличаются от одной операционной системы к другой, но в общем случае поток содержится внутри процесса, а разные потоки в одном и том же процессе используют одни и те же ресурсы, в то время как разные процессы в одной и той же многозадачной операционной системе этого не делают".
Так я прав? Неправильно? Что такое поток на самом деле?
Изменить: По-видимому, потоку также предоставляется собственный стек вызовов, так что это определенная вещь.