థ్రెడ్ ప్రాధాన్యతలు - 1

"మన పాఠాన్ని కొనసాగిద్దాం. థ్రెడ్ ప్రాధాన్యతలు ఏమిటి మరియు అవి ఎందుకు అవసరం?

"వాస్తవ ప్రపంచ సమస్యలలో, వివిధ థ్రెడ్‌ల ద్వారా నిర్వహించబడే పని యొక్క ప్రాముఖ్యత చాలా తేడా ఉంటుంది. ఈ ప్రక్రియను నియంత్రించడానికి థ్రెడ్ ప్రాధాన్యత భావన సృష్టించబడింది. ప్రతి థ్రెడ్‌కు 1 నుండి 10 వరకు ఉన్న సంఖ్య ద్వారా ప్రాతినిధ్యం ఉంటుంది."

"10 అత్యంత ప్రాధాన్యత."

"1 అత్యల్పమైనది."

"ప్రాధాన్యత ఇవ్వకపోతే, ఒక థ్రెడ్ ప్రాధాన్యత 5ని పొందుతుంది (సాధారణం)."

థ్రెడ్ యొక్క ప్రాధాన్యత దాని పనిని గణనీయంగా ప్రభావితం చేయదు, బదులుగా ఎక్కువ సిఫార్సు. రన్ చేయాల్సిన అనేక స్లీపింగ్ థ్రెడ్‌లు ఉంటే, జావా మెషిన్ ముందుగా అధిక ప్రాధాన్యతతో థ్రెడ్‌ను ప్రారంభిస్తుంది.

"జావా మెషీన్ తనకు తగినట్లుగా థ్రెడ్‌లను నిర్వహిస్తుంది. తక్కువ ప్రాధాన్యత కలిగిన థ్రెడ్‌లు నిష్క్రియంగా ఉంచబడవు. అవి ఇతరుల కంటే తక్కువ అమలు సమయాన్ని స్వీకరిస్తాయి, కానీ అవి ఇప్పటికీ అమలు చేయబడతాయి."

"చాలా సందర్భాలలో, థ్రెడ్‌లు ఎల్లప్పుడూ ఒకే ప్రాధాన్యతతో అమలు చేయబడతాయి. ఒక థ్రెడ్‌ను ఇతరుల కంటే ఎక్కువగా ఇవ్వడానికి ప్రయత్నించడం అనేది ప్రోగ్రామ్‌లోని నిర్మాణ సమస్యలకు సూచనగా ఉంటుంది."

"ఓహో. మరియు నా థ్రెడ్‌లకు అత్యధిక ప్రాధాన్యత ఇవ్వాలని నేను ఇప్పటికే కలలు కన్నాను కాబట్టి అవి 10 రెట్లు ఎక్కువ చేస్తాయి."

"ఇక్కడ పరిస్థితి ఖరారు కావడానికి దగ్గరగా ఉందని తేలింది: అధిక ప్రాధాన్యత కలిగిన థ్రెడ్ మరింత పని చేయగలదు మరియు పని చేస్తుంది, కానీ కాకపోవచ్చు- ఎటువంటి హామీ లేదు."

"చెప్పు, నేను థ్రెడ్ యొక్క ప్రాధాన్యతను ఎలా మార్చగలను?"

"ఇది చాలా సులభం. థ్రెడ్ క్లాస్‌లో రెండు పద్ధతులు ఉన్నాయి:"

పద్ధతి వివరణ
void setPriority(int newPriority)
కొత్త ప్రాధాన్యతను సెట్ చేస్తుంది
int getPriority()
ప్రస్తుత థ్రెడ్ ప్రాధాన్యతను అందిస్తుంది

"థ్రెడ్ క్లాస్‌లో మూడు స్థిరాంకాలు కూడా ఉన్నాయి:"

పబ్లిక్ ఫైనల్ స్టాటిక్ ఇంట్ MIN_PRIORITY = 1;

పబ్లిక్ ఫైనల్ స్టాటిక్ ఇంట్ NORM_PRIORITY = 5;

పబ్లిక్ ఫైనల్ స్టాటిక్ పూర్ణాంక MAX_PRIORITY = 10;

"నేను ఊహిస్తున్నాను. MIN_PRIORITY కనిష్ట ప్రాధాన్యత, MAX_PRIORITY గరిష్టం మరియు NORM_PRIORITY డిఫాల్ట్ ప్రాధాన్యతా?"

"అవును, సరిగ్గా. మీరు అత్యధిక థ్రెడ్ ప్రాధాన్యతను కేటాయించే కోడ్‌ను వ్రాయవచ్చు."

"ఇక్కడ ఏదైనా ఉపాయం ఉందా? ఇలాగేనా?"

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

"అది కరెక్ట్. నథింగ్ కాంప్లికేట్, అవునా?"

"అవును. థ్రెడ్ ప్రారంభమైన తర్వాత మీరు ప్రాధాన్యతను సెట్ చేయగలరా/మార్చగలరా? లేదా సెట్‌డెమన్ లాగా ఉందా, ఇక్కడ మీరు థ్రెడ్ ప్రారంభించే ముందు విలువను సెట్ చేయాలి?"

"థ్రెడ్ ప్రారంభించిన తర్వాత ప్రాధాన్యతను మార్చవచ్చు. నేను ఇప్పటికే చెప్పినట్లుగా, ఇది ఎటువంటి నాటకీయ మార్పులకు దారితీయదు."

"సరే, అది చిన్నదే కానీ ఆసక్తికరమైన అంశం. ధన్యవాదాలు, ఎల్లీ."