Увод у животни циклус теме на Јави

Конац доживљава бројне фазе у животном циклусу. Као што је, конац уђе у свет, започне, трчи и након тога пролази. Следећи дијаграм објашњава целокупни животни циклус нити.

  • Конструктор навоја производи нит кроз ново стање.
  • Ако позовете да започнете методу у Тхреад-у, то може учинити кроз стање за покретање.
  • Сцхедулер нити који се односи на Јава покреће ту нит када процесор прими.
  • Када би нит прешла у блокирано стање, покренут ће се поново јер се враћа у стање које се може покренути.
  • Ако се метода чекања означи као нит ће ићи на чекање државе, она би прешла у стање за покретање убрзо након што ће постати обавештење у целој Информи, као и метода нотификације свих.
  • Конац се завршава када се поступак покретања прекине.

Шта је нит?

Навој је дефинисан на нивоу оперативног система. А Јава језик, као и сви други језици, користи, користи услуге које пружа оперативни систем. Са становишта програмера, нит је низ упутстава која ћемо написати у апликацији и извршити на одређени начин. Сама апликација може бити састављена из више нити. У исто време могу се извршити различите нити. ЈВМ (Јава Виртуал Мацхине) ради са неколико нити. Постоје нити за прикупљање смећа. Постоје нити за Јуст ин Тиме Цомпилер и друге техничке нити.

Стање животног циклуса теме на Јави

Испод су различита стања животног циклуса нити на Јави:

1. Ново: Нова нит започиње њихов животни циклус унутар нове државе. И даље је у овом стању пре него што програм започне нит. Поред тога, позната је и као створена нит.

2. Изводљиво: Након што је недавно рођен навој могао да се изврши. Сматра се да нит са овим стањем изводи њихов процес.

3. Чекање: Повремено прелазак нити према стању чекања иако нит чека да други низ изврши активност. Навој прелази у стање које се може покренути само ако додатни навој означава нит која чека да настави да ради.

4. Временско чекање: Конац који се може покренути лако конзервира одређено време које чека да држава добије одређени интервал времена. Конац са тим стањем прелази у стање које се може покренути након истека интервала тачке или ако се догоди догађај који заиста чека.

5. Прекинути: Конац који се може покренути прелази у стање раскида јер испуњава свој задатак или се прекида.

Како створити нит у Јави?

Најосновнији начин креирања нити у Јави је употреба Руннабле Паттерн. Прво морате да направите инстанцу Руннабле интерфејса, што је врло лако; постоји само једна метода за примену. Затим просљеђујемо овај случај конструктору класе Тхреад. А онда само зовемо методу старт () овог нитног предмета креираног да покренемо нову нит која ће покренути задатак умотан у наш Руннабле објект.

Прво направимо инстанцу Руннабле-а. Постоји само једна метода за имплементацију, која се назива метода рун (). Ово је образац Јава 7 са тим примерком анонимне класе. Али такође можемо користити ламбда израз да имплементирамо Руннабле јер у интерфејсу Руннабле постоји само једна метода.

Креирајмо теме на врло једноставним примерима

Видјећемо шта може поћи по злу са условима трке који је са несинхронизованим кодом који би требало да буде синхронизован и поправљаћемо код користећи синхронизацију. Овај први пример је врло једноставан, врло је базичан. Ради се само о креирању задатка.

Излаз:

Задатак је инстанца Руннабле интерфејса, назовимо га руннабле и ово сучеље можемо имплементирати користећи ламбда израз. Овај задатак је дат новој нити и изведен у контексту ове нити. Дакле, управо ћемо исписати име нити која изводи овај задатак. Ја трчим у … Тхреад.цуррентТхреад () је статичка метода класе Тхреад која враћа нит којом се изводи тренутни задатак. И само морамо позвати гетНаме () на овај објект нити да бисмо вратили назив нити. Затим након што створимо инстанцу Тхреад т = нев Тхреад. Просљеђивање овог покретања као параметра. Дакле, ова нит ће извршити овај део кода. И да га покренемо. т.старт () ово је метода старт () коју морамо позвати. Оно што такође можемо учинити је да изричито именимо ову тему користећи т.сетНаме („Моја нит“). А сада можемо да извршимо овај код. Сада уместо цалл старт () методе, називамо методу рун (), а ако покренемо овај код, проблем је у томе што је задатак правилно извршен, али се не извршава у нити коју смо креирали. Изводи се у главном ниту који је нит која изводи главни метод. Дакле, ова метода рун () не би се требала позивати ако желимо покренути нову нит.

Излаз:

Методе животног циклуса нити на Јави

Методе које је једноставно описао Тхреад представљене су у табели.

Типови податакаНазиви метода навоја
Низ

гетНаме ()

Вратите име ове нити

интдобити приоритет ()

Враћа приоритет нити

боолеанје жив()

Тестира да ли се та нит још увек покреће

празнинапридружити()

Чека да ова нит умре (прекине се)

празнинатрцати()

Кад год је та нит саграђена користећи појединачни Руннабле објект, након чега се обично зове метода Руннабле објекта; или другачије, ова метода се неће ништа добро вратити. Кад год се класа навоја може проширити, као и метода рун (), овер-ридден је за време подкласе, тада се позива овер-ридден рун () метода.

празнинасетНаме ( Име низа )

Промените име с овом нитом тако да постане упоредиво са именом аргумента.

статичка празнина

сан ( дугачак милис ) баца Прекинути / изузетак
Узрокује да се садашњи конац одмори
потребна количина милисекунди.
статичка празнинасан ( дугачак милис, инт нанос ) баца ИнтерруптедЕкцептион

То доводи до спавања тренутно присутне нити (престанак извођења) за потребну количину милисекунди као и одређену количину наносекунди.

празнинапочетак()

Покреће ове нити за покретање извршења; Јава виртуална машина позива метод покретања те нити.

статичка празнинапринос ()

Покреће садашњи предмет нити да накратко паузира и дозволи извршење додатних нити.

статичка темацуррентТхреад ()

Враћа спомињање тренутно извршеног објекта нити.

Закључак

  • Једноставно за почетак употребе нити, изузетно тешко схватљиво.
  • Дизајн класа које садрже методе које се могу заштитити нитима је изазовно.
  • Прочитајте: ЈаваДоц да бисте добили класу јава.ланг.Тхреад

Препоручени чланак

Ово је водич за животни циклус теме на Јави. Овде разговарамо о томе шта је нит? и различита стања животног циклуса нити заједно са стварањем нити у јави. Можете и да прођете кроз друге наше предложене чланке да бисте сазнали више -

  1. Оквири у Јави
  2. Стар Паттернс на Јави
  3. Спајање сортирања у Јави
  4. Најбољи Јава компајлери
  5. Статички метод у ПХП-у

Категорија: