ஜாவாவில் வேகமான மற்றும் தோல்வியுற்ற பாதுகாப்பான இட்ரேட்டர்கள்: வித்தியாசம் என்ன?



'ஃபாஸ்ட் ஃபாஸ்ட் அண்ட் ஃபெயில் சேஃப் இட்டரேட்டர்கள்' குறித்த இந்த கட்டுரை இந்த இரண்டு இட்டரேட்டர்களையும் விரிவாக தொடர்புடைய எடுத்துக்காட்டுகளுடன் ஒப்பிட உதவும்.

இரண்டு வகையான ஈரேட்டர்களை ஆதரிக்கவும், முதலாவது வேகமாக தோல்வியடையும், இரண்டாவது பாதுகாப்பாக தோல்வியடையும். ஜாவாவில் விதிவிலக்கு கையாளுதலுக்கு வரும்போது இவை முக்கிய பங்கு வகிக்கின்றன. ‘ஃபெயில் ஃபாஸ்ட் அண்ட் ஃபெயில் சேஃப் இட்ரேட்டர்கள்’ குறித்த இந்த கட்டுரையில், இரண்டு ஈரேட்டர்களின் செயல்பாடுகள் மற்றும் அவற்றுக்கிடையேயான அத்தியாவசிய வேறுபாடு குறித்து ஆராய்வோம்.

இந்த கட்டுரையில் விவாதிக்கப்பட வேண்டிய சுட்டிகள் பின்வருமாறு:





aws cli ஐ எவ்வாறு திறப்பது

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

ஒரே நேரத்தில் மாற்றம்

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



ஒரே மாதிரியான விவரங்களைப் பெறுவதற்கு முன்பு, தலைப்புக்கு மேலே அக்கறை கொண்ட இரண்டு அமைப்பை விரைவாகப் பார்ப்போம்,

ஃபாஸ்ட் சிசெட்ம் தோல்வி:

பிழை ஏற்பட்ட உடனேயே அது மூடப்பட்டால், ஒரு கணினி தோல்வியுற்ற வேக அமைப்பு என்று பெயரிடப்படுகிறது. செயல்பாடுகள் உடனடியாக நிறுத்தப்பட்டு தோல்விகள் அல்லது பிழைகள் வெளிப்படும்.

பாதுகாப்பான அமைப்பு தோல்வி:

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



ஜாவாவில் உள்ள ஈட்டரேட்டர்கள் சேகரிப்பு பொருள்களைக் கடந்து செல்ல அனுமதிக்கின்றன. சேகரிப்பால் திருப்பி அனுப்பப்பட்டவர்கள் வேகமாக தோல்வியடைகிறார்கள் அல்லது இயற்கையில் பாதுகாப்பாக தோல்வியடைவார்கள்.

ஃபாஸ்ட் ஐடரேட்டரில் தோல்வி

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

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

தோல்வியுற்ற வேகமான எடுத்துக்காட்டுக்கான எடுத்துக்காட்டு:

இறக்குமதி java.util.HashMap இறக்குமதி java.util.Iterator இறக்குமதி java.util.Map பொது வகுப்பு FailFastExample {public static void main (string [] args) {வரைபடம் monthIndex = புதிய ஹாஷ்மேப் () monthIndex.put ('1', 'ஜனவரி ') monthIndex.put (' 2 ',' பிப்ரவரி ') monthIndex.put (' 3 ',' மார்ச் ') Iterator iterator = monthIndex.keySet (). Iterator () போது (iterator.hasNext ()) {System.out .println (monthIndex.get (iterator.next ()) // வரைபடத்தில் ஒரு உறுப்பைச் சேர்ப்பது // விதிவிலக்கு அடுத்த அழைப்பில் // அடுத்த () முறையின் மீது வீசப்படும். monthIndex.put ('4', 'ஏப்ரல்')}}}

வெளியீடு:

நூல் “பிரதான” java.util.ConcurrentModificationException இல் விதிவிலக்கு

java.util.HashMap இல் $ HashIterator.nextEntry (அறியப்படாத மூல)

இப்போது நாம் மேலே சென்று தோல்வியுற்ற பாதுகாப்பான இட்டரேட்டரைப் பார்ப்போம்,

பாதுகாப்பான ஐடரேட்டரில் தோல்வி

ஃபெயில் ஃபாஸ்ட் ஐரேட்டர்களைப் போலன்றி, மறு செய்கையின் செயல்பாட்டின் போது சேகரிப்பு மாற்றியமைக்கப்பட்டால், ஃபெயில் சேஃப் ஐரேட்டர்கள் விதிவிலக்குகளை எறிய மாட்டார்கள். உண்மையான சேகரிப்புக்கு பதிலாக அவை சேகரிப்பின் குளோனில் மீண்டும் இயங்குவதே இதற்குக் காரணம். உண்மையான சேகரிப்பில் செய்யப்பட்ட கட்டமைப்பு மாற்றங்கள் அவர்களால் கவனிக்கப்படாமல் போகின்றன.

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

தோல்வி பாதுகாப்பான சொற்பொழிவாளரின் எடுத்துக்காட்டு:

பொது வகுப்பு FailSafeExample {பொது நிலையான வெற்றிட மெயின் (சரம் [] args) {ஒரே நேரத்தில் வரைபடம்இண்டெக்ஸ் = புதிய ஒரே நேரத்தில் ஹாஷ்மேப் () monthIndex.put ('1', 'ஜனவரி') monthIndex.put ('2', 'பிப்ரவரி') monthIndex.put ( '3', 'மார்ச்') ஐட்டரேட்டர் ஐரேட்டர் = monthIndex.keySet (). ஐரேட்டர் () போது (iterator.hasNext ()) {System.out.println (monthIndex.get (iterator.next ())) monthIndex.put ( '4', 'ஏப்ரல்')}}}

வெளியீடு:

  • ஜனவரி
  • பிப்ரவரி
  • மார்ச்

இறுதியாக இந்த கட்டுரையில் நாம் இந்த செயலிகளை ஒப்பிடுகிறோம்,

வேறுபாடுகள்: வேகமான மற்றும் தோல்வியுற்ற பாதுகாப்பான இட்ரேட்டர்

இரண்டு மறு செய்கைகளுக்கு இடையிலான அத்தியாவசிய வேறுபாடுகள் கீழே கொடுக்கப்பட்டுள்ளன:

c இல் இணைக்கப்பட்ட பட்டியலை உருவாக்கவும்
அளவுருக்கள் ஃபாஸ்ட் ஐடரேட்டரில் தோல்வி பாதுகாப்பான ஐடரேட்டரில் தோல்வி
ஒரே நேரத்தில் மாற்றியமைத்தல் விதிவிலக்கு எறியுங்கள்

ஆமாம், ஒரு சேகரிப்பு மாற்றியமைக்கப்படும்போது அவை CocurrentModificationExcepti-on ஐ வீசுகின்றன.

இல்லை, ஒரு தொகுப்பை மாற்றியமைக்கும் போது அவை எந்த விதிவிலக்கையும் எறியாது.

சேகரிப்பை குளோன் செய்யுங்கள்

இல்லை, அவை உறுப்புகளின் மீது பயணிக்க அசல் தொகுப்பைப் பயன்படுத்துகின்றன.

ஆம், அசல் தொகுப்பின் நகலை அவர்கள் பயணிக்க பயன்படுத்துகிறார்கள்.

நினைவகம் மேல்நிலை

இல்லை, அவர்களுக்கு கூடுதல் நினைவகம் தேவையில்லை.

ஆம், சேகரிப்பை குளோன் செய்ய அவர்களுக்கு கூடுதல் நினைவகம் தேவைப்படுகிறது.

எடுத்துக்காட்டுகள்

ஹாஷ்மேப், திசையன், வரிசை பட்டியல், ஹாஷ்செட்

CopyOnWriteArrayList

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

இது இந்த கட்டுரையின் முடிவைக் கொண்டுவருகிறது. நீங்கள் மேலும் அறிய விரும்பினால், பாருங்கள் வழங்கியவர் எடுரேகா. எடுரேகாவின் ஜாவா ஜே 2 இஇ மற்றும் எஸ்ஓஏ பயிற்சி மற்றும் சான்றிதழ் பாடநெறி ஜாவா நிரலாக்கத்தில் உங்களுக்கு ஒரு தொடக்கத்தைத் தரும் வகையில் வடிவமைக்கப்பட்டுள்ளது மற்றும் ஹைபர்னேட் & ஸ்பிரிங் போன்ற பல்வேறு ஜாவா கட்டமைப்புகளுடன் கோர் மற்றும் மேம்பட்ட ஜாவா கருத்தாக்கங்களுக்கும் பயிற்சி அளிக்கிறது.

எங்களுக்கு ஒரு கேள்வி கிடைத்ததா? தயவுசெய்து இந்த “Fail Fast vs Fail Safe” வலைப்பதிவின் கருத்துகள் பிரிவில் குறிப்பிடவும், விரைவில் நாங்கள் உங்களைத் தொடர்புகொள்வோம்.