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 चा एक प्रकार आहेजो अणु दीर्घ मूल्याला समर्थन देतो.