CodeGym /Java Course /தொகுதி 2: ஜாவா கோர் /ஸ்டாப்பிங் த்ரெட்கள்: அதிகாரப்பூர்வ பதிப்பு

ஸ்டாப்பிங் த்ரெட்கள்: அதிகாரப்பூர்வ பதிப்பு

தொகுதி 2: ஜாவா கோர்
நிலை 11 , பாடம் 4
கிடைக்கப்பெறுகிறது

"ஹலோ, அமிகோ! எல்லியின் ரத்து யோசனை புத்திசாலித்தனமாக இருந்தது என்பதை நீங்கள் ஒப்புக்கொள்ள வேண்டும்."

"ஆமாம்."

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

"அப்படியா?"

"ஆம். பாருங்கள்:"

குறியீடு விளக்கம்
class Clock implements Runnable
{
public void run()
{
Thread current = Thread.currentThread();

while (!current.isInterrupted())
{
Thread.sleep(1000);
System.out.println("Tick");
}
}
}
ஒரே கிளாக் ஆப்ஜெக்ட்டில் பல த்ரெட்கள் ரன் முறையை அழைக்க முடியும் என்பதால், தற்போதைய தொடருக்கான த்ரெட் ஆப்ஜெக்ட்டைப் பெறுகிறோம் .

தற்போதைய த்ரெட்டின் isInterrupt மாறி தவறானதாக இருக்கும் வரை Clock class ஆனது "டிக்" என்ற வார்த்தையை கன்சோலில் ஒரு நொடிக்கு ஒருமுறை எழுதும் .

isInterrupt உண்மையாகும்போது , ​​ரன் முறை முடிவடைகிறது  .

public static void main(String[] args)
{
Clock clock = new Clock();
Thread clockThread = new Thread(clock);
clockThread.start();

Thread.sleep(10000);
clockThread.interrupt();
}
முக்கிய இழை ஒரு குழந்தை நூலை (கடிகாரம்) தொடங்குகிறது, அது எப்போதும் இயங்க வேண்டும்.

10 வினாடிகள் காத்திருந்து,  குறுக்கீடு முறையை அழைப்பதன் மூலம் பணியை ரத்துசெய்யவும் .

முக்கிய நூல் அதன் வேலையை முடிக்கிறது.

கடிகார நூல் அதன் வேலையை முடிக்கிறது.

மேலும், ரன் முறையில் முடிவில்லாத சுழல்களில் மக்கள் பயன்படுத்த விரும்பும் தூக்க முறை , தானாகவே isInterrupt மாறியை சரிபார்க்கிறது. ஒரு நூல் ஸ்லீப் முறையை அழைத்தால் , அந்தத் தொடருக்கு isInterrupt உண்மையா என்பதை அந்த முறை முதலில் சரிபார்க்கும் . அது உண்மையாக இருந்தால், முறை தூங்காது. அதற்கு பதிலாக, இது ஒரு InterruptedException விதிவிலக்கை வீசுகிறது.

"ஏன் ஒரு விதிவிலக்கு? லூப்பில் isCancel() என்பதற்குப் பதிலாக isInterrupted() என்று வைப்பது நல்லது அல்லவா?"

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

" இரண்டாவது , பல்வேறு செயல்களை உள்ளடக்கிய சில முறைகள் செயல்படுத்துவதற்கு மிக நீண்ட நேரம் ஆகலாம்."

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

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

" ஐந்தாவது , கூடுதல் சரிபார்ப்பு செயல்திறனைக் குறைக்காது. தூக்க முறையை அழைப்பதன் மூலம் நூல் எதையும் செய்யக்கூடாது (தூங்குவதைத் தவிர), எனவே கூடுதல் வேலை யாரையும் தொந்தரவு செய்யாது."

"அவை தீவிர வாதங்கள்."

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

ஒரு நூல் நிறுத்தப்படும் என்று யாரும் உத்தரவாதம் அளிக்க முடியாது. ஒரு நூல் மட்டுமே தன்னை நிறுத்திக்கொள்ள முடியும்.

கருத்துக்கள்
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION