Что такое поток?

Перед тем как разбираться в многопоточности более детально, необходимо ответить на вопрос. Что такое поток, в терминах многопоточного программирования. В предыдущей статье мы уже дали короткое определение этому термину. Давайте теперь рассмотрим его более детально.

В первую очередь любой поток — это объект. Как и любой другой объект, его можно создать. Можно задать ему ссылку определенного типа, передать эту ссылку в функции. Но наряду со всем этим у него есть некоторые особенности, которые выделяют его среди всех остальных объектов. У класса этого объекта есть два метода start() и run(). Создавая объект потока в приложении, разработчик может вызвать метод start() у него. Вроде бы все просто. Но стоит учесть, что если разрабочик вызвал метод start(), данный поток становится в очередь на выполнение операционной системой и по прошествию определенного количества времени, которое разработчик не контролирует у данного объекта будет вызван метод run(). В данном случае корректнее будет сказать.

После вызова метода start() у потока,операционная система создаст условия, при которых начнется выполнение команд внутри метода run().

Точно также, как и метод main() который разработчик создает для запуска своих приложений говорит Java машине, чтобы та выделила ресурсы необходимые для запуска выполнения последовательности команд описанных в этом методе.

Запуская поток, его выполнение пойдет в параллель с выполнением других потоков. А также каждый поток способен порождать другие потоки.

Важно запомнить, как уже было ранее сказано, разработчик не контролирует время, когда именно будет вызван метод run() у потока, а также последовательность выполнения потоков операционной системой.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: