ReentrantLock
![](https://cdn.codegym.cc/images/article/ee2cd199-b06a-4310-93c0-67f113b8ba93/1024.jpeg)
நிபந்தனை - பூட்டுகளில் நிபந்தனைகளைப் பயன்படுத்துவது ஸ்ட்ரீம்களுக்கான அணுகல் நிர்வாகத்தின் மீதான கட்டுப்பாட்டை அடைய உங்களை அனுமதிக்கிறது. பூட்டு நிலை என்பதுjava.util.concurrent.locksதொகுப்பிலிருந்து நிபந்தனை இடைமுகத்தின் ஒரு பொருளாகும் . நிபந்தனைப் பொருட்களைப், முந்தைய தலைப்புகளில் ஒன்றில் விவாதிக்கப்பட்ட பொருள் வகுப்பின்காத்திருப்பு/அறிவிக்கவும்/அறிவிக்கவும்பயன்படுத்துவதைப் போலவே பல வழிகளிலும் உள்ளது
பூட்டு என்பதுபூட்டு கட்டமைப்பிலிருந்து, இது ஒத்திசைக்கப்பட்டவற்றுடன் ஒப்பிடும்போது வளங்கள்/தடுப்புகளுக்கான அணுகலை கட்டுப்படுத்த ஒரு நெகிழ்வான அணுகுமுறையை வழங்குகிறது. பல பூட்டுகளைப் பயன்படுத்தும் போது, அவற்றின் வெளியீட்டின் வரிசை தன்னிச்சையாக இருக்கலாம், மேலும் அது கட்டமைக்கப்படலாம். பூட்டு ஏற்கனவே கைப்பற்றப்பட்டபோது நிலைமையைக் கையாளும் வாய்ப்பும் உள்ளது.
ReentrantLock என்பது லாக் இடைமுகமான ReentrantLock வகுப்பின்செயலாக்கங்களில் ஒன்றாகும். பூட்டை வெளியிடாமல், முன்பு அழைத்திருந்தாலும், அதே நூலை பூட்டு முறையை அழைக்க இது அனுமதிக்கிறது.
ReentrantLock வகுப்பு , பூட்டு இடைமுகத்தின் முறைகளுக்கு கூடுதலாக , ஒரு தொழிற்சாலை முறை newCondition() உள்ளது . இந்த முறை ஒரு பொருளை திரும்பப் பெறுகிறதுநிலை, இது கொடுக்கப்பட்ட பொருளின் காத்திருப்பு தொகுப்பில் தற்போதைய தொடரிழையைச் சேர்க்க உங்களை அனுமதிக்கிறதுநிலை.
private final Lock R_LOCK = ReentrantLock();
R_LOCK.lock();
try {
//some action happens here
} finally {
R_LOCK.unlock();
}
ReadWriteLock என்பது படிக்க/எழுது பூட்டுகளை உருவாக்குவதற்கான ஒரு இடைமுகமாகும். ஒரு கணினியில் நிறைய வாசிப்புகள் மற்றும் சில எழுதுதல்கள் இருக்கும்போது பூட்டுகள் மிகவும் பயனுள்ளதாக இருக்கும்.
ReentrantReadWriteLock - பல திரிக்கப்பட்ட சேவைகள் மற்றும் தற்காலிக சேமிப்புகளில் பயன்படுத்தப்படுகிறது, ஒத்திசைக்கப்பட்ட தொகுதிகளுடன் ஒப்பிடும்போது ஒரு நல்ல செயல்திறன் ஊக்கத்தை கொண்டுள்ளது. உண்மையில், வகுப்பு 2 பரஸ்பர பிரத்தியேக முறைகளில் செயல்படுகிறது: பல வாசகர்கள் தரவை இணையாகப் படிக்கிறார்கள் மற்றும் 1 எழுத்தாளர் மட்டுமே தரவை எழுதுகிறார்.
ReentrantReadWriteLock.ReadLock - வாசகர்களுக்கான வாசிப்பு பூட்டு, readWriteLock.readLock() மூலம் பெறப்பட்டது.
ReentrantReadWriteLock.WriteLock - எழுத்தாளர்களுக்கான எழுத்துப் பூட்டு, readWriteLock.writeLock() வழியாகப் பெறப்பட்டது.
சின்க்ரோனைசர்
![](https://cdn.codegym.cc/images/article/cb9ae844-7dce-459b-b8af-55a1830c5fb1/512.jpeg)
AbstractOwnableSynchronizer என்பது ஒத்திசைவு வழிமுறைகளை உருவாக்குவதற்குப் பொறுப்பான அடிப்படை வகுப்பாகும். உங்கள் தரவில் செயல்படக்கூடிய பிரத்யேக ஸ்ட்ரீமை நினைவில் வைத்து படிக்க ஒரு கெட்டர்/செட்டர் உள்ளது.
AbstractQueuedSynchronizer என்பது FutureTask, CountDownLatch, Semaphore, ReentrantLock, ReentrantReadWriteLock ஆகியவற்றில் உள்ள ஒத்திசைவு பொறிமுறைக்கான அடிப்படை வகுப்பாகும். ஒரு ஒற்றை மற்றும் அணு எண்ணு மதிப்பை நம்பியிருக்கும் புதிய ஒத்திசைவு வழிமுறைகளை உருவாக்கும் போது இது பயன்படுத்தப்படுகிறது.
AbstractQueuedLongSynchronizer என்பது அணு நீண்ட மதிப்பை ஆதரிக்கும் AbstractQueuedSynchronizer இன் மாறுபாடாகும்