ஜாவாவில் ஒத்திசைவு: என்ன, எப்படி, ஏன்?

ஜாவாவில் ஒத்திசைவு குறித்த இந்த கட்டுரை பல திரிக்கப்பட்ட நிரல்களை ஒத்திசைப்பது பற்றி அறிய உங்கள் வழியை வழிநடத்த உதவும்.

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

sql சேவையக ஒருங்கிணைப்பு சேவைகள் பயிற்சி

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



தொடங்குவோம்!

ஜாவாவில் ஒத்திசைவை ஏன் பயன்படுத்த வேண்டும்?

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

தொடரியல் :

ஒத்திசைக்கப்பட்டது (ஆப்ஜெக்டிடிஃபையர்) {// பகிரப்பட்ட மாறிகள் மற்றும் பிற பகிரப்பட்ட வளங்களை அணுகவும்}

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

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

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

ஒத்திசைவு வகைகள்

அடிப்படையில் இரண்டு வகையான ஒத்திசைவு கிடைக்கிறது. அவை:

  1. செயல்முறை ஒத்திசைவு: ஒரு நிலையை அடைய பல நூல்கள் அல்லது செயல்முறைகளை ஒரே நேரத்தில் செயல்படுத்துதல், அவை ஒரு குறிப்பிட்ட வரிசை செயல்களுக்கு உறுதியளிக்கின்றன.
  2. நூல் ஒத்திசைவு: ஒன்றுக்கு மேற்பட்ட நூல் இருக்கும் நேரங்களில்பகிரப்பட்ட வளத்தை அணுக முயற்சிக்கிறது, வளமானது ஒரே ஒரு நூலால் மட்டுமே பயன்படுத்தப்படும் என்பதை உறுதிப்படுத்த வேண்டும்ஒரு முறை.

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

ஜாவாவில் பூட்டுகள்

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

ஜாவா 5 இலிருந்து, java.util.concurrent.locks தொகுப்பு பல பூட்டு செயலாக்கங்களைக் கொண்டுள்ளது.

ஒரு பூட்டு எப்படி இருக்கும்:

பொது வகுப்பு பூட்டு {தனியார் பூலியன் isLocked = தவறான பொது ஒத்திசைக்கப்பட்ட வெற்றிட பூட்டு () குறுக்கிடப்பட்ட எக்ஸ்செப்சனை வீசுகிறது {அதே நேரத்தில் (isLocked) {காத்திரு ()} isLocked = true} பொது ஒத்திசைக்கப்பட்ட வெற்றிட திறத்தல் () {isLocked = false notify ()}}

பூட்டு () முறை பூட்டு நிகழ்வைப் பூட்டுகிறது, இதனால் பூட்டு () ஐ அழைக்கும் அனைத்து நூல்களும் திறத்தல் () செயல்படுத்தப்படும் வரை தடுக்கப்படும்.

ஒத்திசைவு இல்லாமல் பல-த்ரெட்டிங்

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

வகுப்பு மல்டித்ரெட் {பொது வெற்றிட அச்சு அச்சு () {முயற்சிக்கவும் {(int i = 5 i<0 i--) { System.out.println('Counter --- ' + i ) } } catch (Exception e) { System.out.println('Thread interrupted.') } } } class Thread extends Multithread { private Thread t private String threadName Multithread MT Thread( String name, Multithread mt) { threadName = name MT= mt } public void run() { MT.printCount() System.out.println('Thread ' + threadName + ' exiting.') } public void start () { System.out.println('Starting ' + threadName ) if (t == null) { t = new Thread (this, threadName) t.start () } } } public class TestThread { public static void main(String args[]) { Multithread MT = new Multithread() Thread t = new Thread( 'Thread - 1 ', MT) Thread t1 = new Thread( 'Thread - 2 ', MT) t.start() t1.start() // wait for threads to end try { t.join() t1.join() } catch ( Exception e) { System.out.println('Interrupted') } } }

மேலே உள்ள திட்டத்தின் முடிவுகள்:

வெளியீடு- ஜாவாவில் ஒத்திசைவு- எடுரேகா

ஒத்திசைவுடன் மல்டி-த்ரெட்டிங்

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

class Multithread {public void printCount () {try {for (int i = 5 i> 0 i--) {System.out.println ('Counter ---' + i)}} catch (விதிவிலக்கு e) {கணினி. out.println ('நூல் குறுக்கிடப்பட்டது.') Th} Th வகுப்பு நூல் மல்டித்ரெட் {தனியார் நூல் டி தனியார் சரம் நூல் பெயர் மல்டித்ரெட் எம்டி நூல் (சரம் பெயர், மல்டித்ரெட் எம்டி) {நூல் பெயர் = பெயர் எம்டி = எம்டி} பொது வெற்றிட ரன் () {ஒத்திசைக்கப்பட்டது ( MT) {MT.printCount ()} System.out.println ('Thread' + threadName + 'வெளியேறுதல்.')} பொது வெற்றிட தொடக்க () {System.out.println ('Start' + threadName) if (t == பூஜ்யம்) {t = புதிய நூல் (இது, நூல் பெயர்) t.start ()}}} பொது வகுப்பு டெஸ்ட் த்ரெட் {பொது நிலையான வெற்றிட மெயின் (சரம் ஆர்க்ஸ் []) {மல்டித்ரெட் எம்டி = புதிய மல்டித்ரெட் () நூல் டி = புதிய நூல் ('நூல் - 1 ', எம்டி) நூல் டி 1 = புதிய நூல் (' நூல் - 2 ', எம்டி) டி.ஸ்டார்ட் () டி 1. பிடிக்கவும் (விதிவிலக்கு இ) {System.out.println ('குறுக்கீடு')}}}

வெளியீடு கீழே சித்தரிக்கப்பட்டுள்ளது:

ஒத்திசைக்கப்பட்ட முக்கிய சொல்

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

ஒத்திசைக்கப்பட்ட முக்கிய சொல்லை இதனுடன் பயன்படுத்தலாம்:

குறியீடு தொகுதி பற்றி விவாதிக்கலாம்.

ஒத்திசைக்கப்பட்ட முக்கிய சொல்: ஒரு குறியீடு தொகுதி

தொடரியல்

ஒத்திசைக்கப்பட்ட தொகுதியை எழுதுவதற்கான பொதுவான தொடரியல்:

ஒத்திசைக்கப்பட்ட (பூட்டு பொருள்) {// ஒத்திசைக்கப்பட்ட அறிக்கைகள்}

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

ஜாவாவில் வீசுவதற்கும் வீசுவதற்கும் வித்தியாசம்

குறிப்பு :

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

இப்போது, ​​முறையைப் பற்றி விவாதிக்கலாம்.

ஒத்திசைக்கப்பட்ட முக்கிய சொல்: ஒரு முறை

தொடரியல்

எழுதுவதற்கான பொதுவான தொடரியல் a ஒத்திசைக்கப்பட்ட முறை இருக்கிறது:

ஒத்திசைக்கப்பட்ட முறை (அளவுருக்கள்) {// ஒத்திசைக்கப்பட்ட குறியீடு}

இங்கே lockObject ஒத்திசைக்கப்பட்ட அறிக்கைகளைக் குறிக்கும் மானிட்டருடன் பூட்டு தொடர்புடைய ஒரு பொருளின் குறிப்பு மட்டுமே.

ஒத்திசைக்கப்பட்ட தொகுதிக்கு ஒத்ததாக, ஒத்திசைக்கப்பட்ட முறையுடன் இணைக்கப்பட்ட மானிட்டர் பொருளின் பூட்டை ஒரு நூல் பெற வேண்டும். ஒத்திசைக்கப்பட்ட முறையின் விஷயத்தில், பூட்டு பொருள்:

  • ‘. கிளாஸ்’ பொருள் - கொடுக்கப்பட்ட முறை என்றால் நிலையான .
  • ‘இந்த’ பொருள் - முறை என்றால் நிலையானது அல்ல . ‘இது’ என்பது ஒத்திசைக்கப்பட்ட முறை செயல்படுத்தப்படும் தற்போதைய பொருளின் குறிப்பு.

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

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

ஒத்திசைக்கப்பட்ட முக்கிய சொற்களுக்கும் ஒத்திசைக்கப்பட்ட தொகுதிக்கும் உள்ள வேறுபாடு

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

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

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

எங்களுக்கு ஒரு கேள்வி கிடைத்ததா? இந்த “ஜாவாவில் ஒத்திசைவு” இன் கருத்துகள் பிரிவில் குறிப்பிடவும் ' கட்டுரை மற்றும் விரைவில் நாங்கள் உங்களிடம் வருவோம்.