நூல் வாழ்க்கை சுழற்சி மற்றும் நூல் நிலைகள் - 1

"வணக்கம், அமிகோ!"

"நாங்கள் ஒரு புதிய தலைப்பைத் தொடங்கப் போகிறோம்: நூல்கள்."

"தொடங்குவோம். ஒரு நூல் இயங்கும் போது ஒரு நூல் பொருள் கடந்து செல்லும் (அல்லது கடந்து செல்லக்கூடிய) நிலைகளை இன்று ஆராய்வோம்."

"அமிகோ, நீங்கள் இப்போது எத்தனை மாநிலங்களுக்கு பெயரிடலாம்?"

"இரண்டு. முதலில் ஒரு நூல் தொடக்கம் () முறை அழைக்கப்படுகிறது: பொருள் உள்ளது, ஆனால் நூல் இன்னும் செயலில் இல்லை. இரண்டாவது தொடக்க() முறை அழைக்கப்பட்ட பிறகு: நூல் ஏதாவது செய்யும் போது முக்கியமான."

"நீங்கள் சொல்வது சரிதான்-அத்தகைய வேறுபாடு உள்ளது. இந்த நிலைகள் புதியவை மற்றும் இயங்கும் என்று அழைக்கப்படுகின்றன , ஆனால் இது ஆரம்பம் தான்."

"முதலில், ஒரு கட்டத்தில் திரி ஓடி முடிக்கும், அதாவது நூல் பொருள் இருக்கும் சூழ்நிலை இருக்கலாம், ஆனால் நூல் புதிய அல்லது இயங்கும் நிலையில் இல்லை. "இழை ஓடி முடித்த இந்த நிலை, அழைக்கப்படுகிறது. நிறுத்தப்பட்டது ."

"ஆனால் இன்னும் இருக்கிறது. எந்த நேரத்திலும் உண்மையில் ஒரே ஒரு நூல் மட்டுமே இயங்குகிறது என்பதை மறந்துவிடாதீர்கள். ஒரே நேரத்தில் வேலை செய்வதாகத் தோன்றுவது உண்மையில் செயலி தொடர்ந்து நூலுக்கு இழைக்குத் தாவுகிறது. நூல் எப்போது தோன்றும் என்பதற்கு ஒரு தனி நிலை உள்ளது. ஓடுகிறது, ஆனால் உண்மையில் அதன் முறைக்காகக் காத்திருக்கிறது: இது இயங்குவதற்குத் தயாராக உள்ளது என்று அழைக்கப்படுகிறது . ஒரு நூல் வேலை செய்யும் போது, ​​அது தொடர்ந்து இயங்குவதிலிருந்து தயாராகி , பின்னர் மீண்டும் இயங்கும் போது மீண்டும் இயங்கும் ."

" தொடக்க () முறை அழைக்கப்பட்ட உடனேயே , த்ரெட் இயக்கத் தயாராக இருக்கும் நிலையை ஒதுக்கி, JVM மாற்றும் தொடரிழைகளின் பகிரப்பட்ட பட்டியலில் வைக்கப்படும்."

"அது ஒன்றும் கடினம் அல்ல, அது இயங்கத் தொடங்கும் முன், அதற்கு புதிய நிலை உள்ளது . அது முடிந்ததும் , அது நிறுத்தப்படும் ."

"உங்கள் சுருக்கம் ஆச்சரியமாக இருக்கிறது, ஆனால் நீங்கள் சொல்வது சரிதான்."

"ஆனால் இன்னும் இருக்கிறது. த்ரெட்டைத் தடுக்கலாம். எடுத்துக்காட்டாக, நீங்கள் ஒத்திசைக்கப்பட்ட தொகுதியை உள்ளிடும்போது. ஒரு நூல் ஒத்திசைக்கப்பட்டதாகக் குறிக்கப்பட்ட குறியீட்டுத் தொகுதிக்கு வந்து , மற்றொரு நூல் அதைப் பயன்படுத்தினால், எங்கள் நூல் தடுக்கப்பட்ட நிலைக்குச் சென்று காத்திருக்கும். பொருளின் மியூடெக்ஸ் (பூட்டு) வெளியிடப்பட வேண்டும்."

"மாநிலங்களுடனான இந்த நிலைமை எப்படி இருக்கிறது என்பது இங்கே:"

நூல் வாழ்க்கை சுழற்சி மற்றும் நூல் நிலைகள் - 2

"ஆனால் இன்னும் இருக்கிறது. காத்திருப்பு என்று ஒரு தனி நிலையும் உள்ளது . இது ஒரு நூல் தடுக்கப்படவில்லை , ஆனால் தயாராக இல்லை . எடுத்துக்காட்டாக, நீங்கள் மற்றொரு திரியில் சேர () முறையை அழைக்கும்போது ."

நாம் மற்றொரு த்ரெட் பொருளில் join() என்று அழைக்கும்போது, ​​​​அது நமது நூல் அதில் "சேர்வது" போல் இருக்கும், ஆனால் உண்மையில் அது மற்ற திரி முடிவடையும் வரை காத்திருக்கிறது.

"கூடுதலாக, காத்திருப்பு () முறையும் உள்ளது (காத்திருப்பு/அறிவித்தல்/அனைத்து மூன்று முறைகளிலும் இருந்து), இது ஒரு தொடரை அழைக்கும் போது காத்திருக்கும் நிலைக்கு மாற்றும்."

"ஐயோ."

"கொஞ்சம் பொறு! இன்னும் இருக்கு. உதாரணத்துக்கு தூக்க முறையைக் கூப்பிட்டு ஒரு நூல் தூங்கலாம். இதற்கென்று தனி நிலையும் உண்டு. அதற்குப் பெயர் « டைம்டு வெயிட்டிங் » ஒரு வரையறுக்கப்பட்ட நேரம். காத்திருப்பு(காலம் முடிந்தது) அல்லது சேருதல்(காலம் முடிந்தது) போன்ற அளவுருவுடன் காத்திருப்பு முறையை நீங்கள் அழைத்தால், அந்தத் தொடரானது நேர-காத்திருக்கும் நிலைக்குச் செல்லும்."

"முழு வரைபடம் இதோ:"

நூல் வாழ்க்கை சுழற்சி மற்றும் நூல் நிலைகள் - 3

"ம்ம். அவ்வளவுதானா? அல்லது இன்னும் 10 சுவாரசியமான மாநிலங்கள் உள்ளதா?"

"இப்போதைக்கு, அவ்வளவுதான்."

"நடைமுறையில், நீங்கள் முதல் வரைபடத்தை நினைவில் வைத்துக் கொள்ளலாம். இது எளிமையானது. ஆனால் இரண்டாவது மிகவும் துல்லியமானது."

"விசித்திரமான போதும், இணையத்தில் நிறைய நூல் நிலை வரைபடங்கள் உள்ளன, அவை அனைத்தும் வேறுபட்டவை."

"அதனால்தான் இந்த வரைபடத்தை நான் உங்களுக்குக் கொடுத்தேன் - இது மிகவும் முழுமையானது மற்றும் சரியானது."

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

"இல்லை. நான் அப்படிப் பார்ப்பது இதுவே முதல் முறை."

" த்ரெட் கிளாஸ் ஸ்டேட் எனப்படும் உள் வகுப்பையும் , பொது ஸ்டேட் கெட்ஸ்டேட்() முறையையும் கொண்டுள்ளது."

உதாரணமாக
public enum State
{
 NEW,
 RUNNABLE,
 BLOCKED,
 WAITING,
 TIMED_WAITING,
 TERMINATED;
}

"நீங்கள் எப்போதும் ஒரு த்ரெட் பொருளில் getState () முறையை அழைக்கலாம் மற்றும் அதன் தற்போதைய நிலையைக் கண்டறியலாம். மேலும், நிச்சயமாக, இது மாநில எண் மதிப்புகளில் ஒன்றாக இருக்கும்."

"நான் பார்க்கிறேன். எனவே, உண்மையான நிலைகள் JVM-க்குள் உள்ளன, ஆனால் நீங்கள் State getState() முறையைப் பயன்படுத்தி Java குறியீடு வழியாக அணுகக்கூடிய நிலைகளும் உள்ளன."

"என்ன சூழ்நிலையில் நான் அதைப் பயன்படுத்துவேன்?"

"பெரும்பாலும், ஒருபோதும்."

"ஆனால், நூல்களுக்குள் என்ன நடக்கிறது என்பதை நீங்கள் தெரிந்து கொள்ள வேண்டும். இல்லையெனில், உங்களிடம் நிறைய பிழைகள் இருக்கும், மேலும் அவை எதனால் ஏற்படுகின்றன என்பதை உங்களால் யூகிக்க முடியாது."

"மேலும், முதலாளிகள் நேர்காணலின் போது நூல் நிலைகளைப் பற்றி கேட்க விரும்புகிறார்கள்."