Что такое «нить» (на самом деле)? - PullRequest
203 голосов
/ 05 марта 2011

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

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

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

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

Как пример определения, которое мне не особо помогло.,.

From Wikipedia :

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

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

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

Ответы [ 12 ]

0 голосов
/ 03 февраля 2018

Я не очень доволен любым из этих ответов, поэтому я собираюсь добавить свой собственный здесь :) Поток - это абстракция ядра для планирования работы над процессором, поток - это то, что ядро ​​дает вам управлять время процессора и делиться работой с другими

0 голосов
/ 10 декабря 2016

Если вы хотите получить ответ на английском языке, вот что сказал мне мой учитель, когда я спросил его:

«Вы знаете, как, когда вы запускаете программу Java, она запускает программу сверху вниз?в основном это способ для вас обойти это. Например, открыть два текстовых поля одновременно или запустить таймер одновременно с кучей других вещей. "

Клянусь, это почти точно то, что он сказал.

...