मैं एक धागा सुरक्षित वर्ग कंटेनर के साथ स्पष्ट ताले गठबंधन प्रत्येक पुनरावृत्ति पर कंटेनर का ताला और केवल लूप के अंत में, सभी ताले छोड़ दें। कुछ इस तरह:जावा सिंक्रनाइज़ तरीकों
for(Container c : containers) {
c.lock();
//do stuff
}
for(Container c : containers)
c.unlock();
मैं अभी भी अन्य थ्रेड खुला कंटेनरों के getX और setX तरीकों का उपयोग करने के लिए जारी रखने के लिए सक्षम होना चाहते हैं, लेकिन विभिन्न कारणों से मैं पहले से ही विश्लेषण किया कंटेनरों के लिए अनुमति देने के लिए है कि नहीं करना चाहती के लिए।
क्या आप इसके लिए जावा कोड जानते हैं?
बेहतर विचारों की भी सराहना की जाती है।
कैसे 'ताला()' और 'अनलॉक होने के बारे में()' 'getX' और' setX' में पहली और आखिरी? – aioobe
@see [ReentrantLock] (http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/locks/ReentrantLock.html) –
@aioobe: मैं सिंक्रनाइज़ किए गए तरीकों को स्पष्ट रूप से जोड़ना चाहता हूं ताले (उम्मीद है कि यह possibile है, लेकिन मुझे लगता है कि यह इसलिए है क्योंकि दृश्यों के पीछे सिंक्रनाइज़ किए गए कीवर्ड ऑब्जेक्ट लॉक प्राप्त करता है)। – Kami