நூல் முன்னுரிமைகள் - 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();

"அது சரிதான். ஒன்னும் சிக்கலாக இல்லை, இல்லையா?"

"ஆமாம். ஒரு த்ரெட் துவங்கிய பிறகு முன்னுரிமையை அமைக்க/மாற்ற முடியுமா? அல்லது இது setDaemon போன்றதா, அங்கு திரி தொடங்கும் முன் மதிப்பை அமைக்க வேண்டுமா?"

"ஒரு நூல் தொடங்கப்பட்ட பிறகு முன்னுரிமையை மாற்றலாம். நான் ஏற்கனவே கூறியது போல், இது எந்த வியத்தகு மாற்றங்களையும் ஏற்படுத்தாது."

"சரி, அது ஒரு சிறிய ஆனால் சுவாரஸ்யமான தலைப்பு. நன்றி, எல்லி."