Что такое «поток» (на самом деле)?

Я пытался найти хорошее определение и понять, что такое thread действительно есть.

Кажется, я упускаю что-то очевидное, но каждый раз, когда я читаю о том, что такое поток, это почти круговое определение, а-ля «поток - это поток выполнения» или « способ разбить на выполняемые задачи ». Эээ. А?

Из того, что я прочитал, кажется, что поток на самом деле не что-то конкретное, как процесс. На самом деле это просто концепция. Насколько я понимаю, как это работает, процессор выполняет некоторые команды для программы (которая была названа потоком выполнения ), а затем, когда ему нужно ненадолго переключиться на обработку какой-либо другой программы , он сохраняет состояние программы, которую он в данный момент выполняет где-то (локальное хранилище потока), а затем начинает выполнение инструкций другой программы. И туда-сюда. Таким образом, поток на самом деле является просто концепцией для «одного из путей выполнения» программы, которая выполняется в данный момент.

В отличие от процесса, который на самом деле является чем-то - это скопление ресурсов и т. Д.

] В качестве примера определения, которое мне особо не помогло. . .

Из Википедия :

«Поток в информатике - это сокращение от потока выполнения. Потоки - это способ программы разделить (так называемое «разбиение») себя на две или более одновременно (или псевдо-одновременно) выполняющихся задач. Потоки и процессы различаются от одной операционной системы к другой, но, как правило, поток содержится внутри процесса, и разные потоки в одном процессе используют одни и те же ресурсы, в то время как разные процессы в одной и той же многозадачной операционной системе - нет ».

Я прав? Неправильно? Что такое поток на самом деле?

Изменить: Очевидно, потоку также предоставляется свой собственный стек вызовов, так что это что-то вроде конкретной вещи .

218
задан richard 1 February 2016 в 22:57
поделиться

0 ответов

Другие вопросы по тегам:

Похожие вопросы: