Mga priyoridad sa thread - 1

"Ipagpatuloy natin ang ating aralin. Ano ang mga priyoridad ng thread at bakit kailangan ito?

"Sa totoong mga problema sa mundo, ang kahalagahan ng gawaing ginagawa ng iba't ibang mga thread ay maaaring mag-iba nang malaki. Ang konsepto ng thread priority ay nilikha upang kontrolin ang prosesong ito. Ang bawat thread ay may priyoridad na kinakatawan ng isang numero mula 1 hanggang 10."

"10 ang pinakamataas na priyoridad."

"1 ang pinakamababa."

"Kung walang binigay na priyoridad, ang isang thread ay makakakuha ng priority 5 (normal)."

Ang priyoridad ng isang thread ay hindi gaanong nakakaapekto sa trabaho nito, ngunit sa halip ay higit pa sa isang rekomendasyon. Kung mayroong ilang mga sleeping thread na kailangang tumakbo, ang Java machine ay magsisimula ng isang thread na may mas mataas na priyoridad muna.

"Ang Java machine ay namamahala ng mga thread ayon sa nakikita nitong akma. Ang mga thread na may mababang priyoridad ay hindi iiwan sa idle. Sila ay makakatanggap lamang ng mas kaunting oras ng pagpapatupad kaysa sa iba, ngunit sila ay isasagawa pa rin."

"Sa karamihan ng mga kaso, ang mga thread ay palaging isinasagawa na may parehong priyoridad. Ang isang pagtatangka na bigyan ang isang thread ng higit pa kaysa sa iba ay kadalasang isang indikasyon ng mga problema sa arkitektura sa isang programa."

"Whoa. And I had already dreaming of assigning the highest priority to my threads so they would do 10 times more."

"Lumalabas na ang sitwasyon dito ay malapit nang ma-finalize: ang isang thread na may mataas na priyoridad ay maaari at gagana nang higit pa, ngunit maaaring hindi-walang garantiya."

"Sabihin, paano ko babaguhin ang priority ng isang thread?"

"Napakadali. Ang klase ng Thread ay may dalawang pamamaraan:"

Pamamaraan Paglalarawan
void setPriority(int newPriority)
Nagtatakda ng bagong priyoridad
int getPriority()
Ibinabalik ang kasalukuyang priyoridad ng thread

"Ang klase ng Thread ay mayroon ding tatlong pare-pareho:"

public final static int MIN_PRIORITY = 1;

public final static int NORM_PRIORITY = 5;

public final static int MAX_PRIORITY = 10;

"Hayaan mo akong hulaan. MIN_PRIORITY ang pinakamababang priyoridad, MAX_PRIORITY ang maximum, at NORM_PRIORITY ang default na priyoridad?"

"Oo, eksakto. Maaari mong isulat ang code na nagtatalaga ng pinakamataas na priyoridad ng thread."

"May pakulo ba dito? May ganito?"

Thread thread = new MyThread();
thread.setPriority(Thread. MAX_PRIORITY)
thread.start();

"Tama. Wala namang kumplikado diba?"

"Yep. Maaari mo bang itakda/palitan ang priority pagkatapos magsimula ang isang thread? O ito ba ay tulad ng setDaemon, kung saan kailangan mong itakda ang halaga bago magsimula ang thread?"

"Maaaring baguhin ang priyoridad pagkatapos magsimula ang isang thread. Gaya ng sinabi ko na, hindi ito nagreresulta sa anumang mga dramatikong pagbabago."

"Well, that was a small but interesting topic. Salamat, Ellie."