"வணக்கம், அமிகோ!"
"இப்போது நான் உங்களுக்கு தூக்கம், விளைச்சல் மற்றும் சேரும் முறைகளைப் பற்றி கொஞ்சம் சொல்கிறேன்."
"அது சலிப்பாக இருக்கிறது. நான் நேர்காணல் கேள்வியைக் கண்டேன்: ' விளைச்சல் (), தூக்கம் (), மற்றும் காத்திருப்பு () முறைகளுக்கு என்ன வித்தியாசம் ?'. அதை விளக்க முடியுமா?"
"பிரச்சனை இல்லை. முதலில், இவை மூன்று முற்றிலும் வேறுபட்ட முறைகள்."
1) உறக்கம்(நேரம் முடிந்தது) - காலக்கெடு அளவுருவால் குறிப்பிடப்பட்ட மில்லி விநாடிகளின் எண்ணிக்கைக்கான தற்போதைய தொடரை (தூக்கம் அழைக்கப்பட்டது) நிறுத்துகிறது. த்ரெட் பின்னர் TIMED_WAITING நிலைக்குச் செல்லும். isInterrupted கொடி அமைக்கப்பட்டால், முறை முன்னதாகவே முடிவடையும்.
உதாரணமாக | விளக்கம் |
---|---|
|
தற்போதைய நூல் 500 மில்லி விநாடிகள் அல்லது 0.5 வினாடிகளுக்கு அதன் சொந்த இயக்கத்தை இடைநிறுத்துகிறது. |
2) விளைச்சல்() – தற்போதைய நூல் 'தன் திருப்பத்தைத் தவிர்க்கிறது'. நூல் இயங்கும் நிலையில் இருந்து தயாராக நிலைக்கு செல்கிறது, மேலும் JVM அடுத்த தொடருக்கு செல்கிறது. இயங்கும் மற்றும் தயாராக இருக்கும் நிலைகள் இயங்கக்கூடிய மாநிலத்தின் துணை மாநிலங்களாகும் .
உதாரணமாக | விளக்கம் |
---|---|
|
தற்போதைய நூல் "அதன் திருப்பத்தைத் தவிர்க்கிறது" மற்றும் ஜாவா உடனடியாக அடுத்த தொடரிழைக்கு மாறுகிறது. |
3) காத்திரு(நேரம் முடிந்தது) - இது காத்திருப்பு () முறையின் பதிப்பு , ஆனால் காலக்கெடுவுடன். " தற்போதைய த்ரெட்டால் பூட்டப்பட்ட மியூடெக்ஸ் பொருளின் ஒத்திசைக்கப்பட்ட தொகுதிக்குள் மட்டுமே காத்திருப்பு முறை அழைக்கப்படும் . இல்லையெனில், முறை சட்டவிரோதமான கண்காணிப்பு நிலை விதிவிலக்கை வீசுகிறது.
"இந்த முறையை அழைப்பதால், மியூடெக்ஸ் பொருளின் பூட்டு வெளியிடப்பட்டு, மற்றொரு நூலைப் பெறுவதற்குக் கிடைக்கும். மேலும், த்ரெட் காத்திருக்கும் நிலைக்கு (அளவுருக்கள் இல்லாமல் காத்திருப்பு() முறை) அல்லது TIMED_WAITING நிலைக்கு (காத்திருப்புக்கு(காலம் முடிவதற்கு) ) முறை)."
உதாரணமாக | விளக்கம் |
---|---|
|
காத்திருப்பு முறை அழைக்கப்படும் போது, தற்போதைய நூல் மானிட்டர் பொருளின் பூட்டை வெளியிடுகிறது, மேலும் 500 மில்லி விநாடிகள் தூங்குகிறது. மானிட்டர் பொருளை மற்றொரு நூல் மூலம் பெறலாம். 500 மில்லி விநாடிகளுக்குப் பிறகு, நூல் எழுந்திருக்கும், மானிட்டர் பிஸியாக இல்லாவிட்டால், நூல் அதைப் பெற்று தொடர்ந்து வேலை செய்யும். மானிட்டர் வேறொரு நூலால் பூட்டப்பட்டால், தற்போதைய திரி தடுக்கப்பட்ட நிலைக்கு மாறும். |
4) சேர (காலம் முடிந்தது)
"இந்த முறை உங்கள் கேள்வியில் இல்லை, ஆனால் இது எனது பாடத் திட்டத்தில் உள்ளது, எனவே இதைப் பற்றி நான் உங்களுக்கு சொல்கிறேன். நீங்கள் join() அல்லது join(timeout) முறையை அழைக்கும் போது, தற்போதைய த்ரெட் த்ரெட்டன் 'இணைக்கப்பட்டுள்ளது' இது இந்த முறையை அழைத்தது. தற்போதைய இழை உறங்குகிறது மற்றும் அது இணைக்கப்பட்ட நூல் முடியும் வரை காத்திருக்கிறது (அதாவது யாருடைய இணைப்பு() முறை அழைக்கப்பட்டது)."
"தற்போதைய த்ரெட், join() முறைக்கான WAITING நிலைக்கும், join(timeout) முறைக்கான TIMED_WAITING நிலைக்கும் நுழைகிறது."
உதாரணமாக | விளக்கம் |
---|---|
|
தற்போதைய த்ரெட், workerThread இழையுடன் சேர்ந்து அது முடிவடையும் வரை காத்திருக்கும். ஆனால் அது 500 மில்லி விநாடிகளுக்குப் பிறகு 'இணைந்து' தொடர்ந்து இயங்கும். |
"காத்திருப்பு(டைம்அவுட்) மற்றும் ஜாயின்(டைம்அவுட்) முறைகளில் உள்ள காலக்கெடு என்பது அந்த முறை உறக்கத்திற்குச் சென்று எதற்காகவோ காத்திருக்கிறது, ஆனால் மில்லி விநாடிகளில் கொடுக்கப்பட்ட காலக்கெடுவை விட இனி இல்லை. பிறகு அது எழுந்திருக்கும்."
"இந்த முறைகளில் பொதுவான ஒரே விஷயம் நேரம் முடிவடைவது போல் தெரிகிறது. அவை முற்றிலும் மாறுபட்ட விஷயங்களைச் செய்கின்றன."
"ஆம், அது சரி."
GO TO FULL VERSION