2011-07-09 14 views
10

जब हम ReentrantReadWriteLock को जावा में बहु-क्रम वातावरण में सिंक्रनाइज़ कीवर्ड तुलना में इस्तेमाल करना चाहिए?ReentrantReadWriteLock बनाम सिंक्रनाइज़

ReentrantReadWriteLock से अधिक जावा में सिंक्रनाइज़ का उपयोग कर के क्या लाभ हैं?

क्या कोई भी एक उदाहरण भी दे सकता है (जावा में)?

धन्यवाद!

+1

आप इस धागे को पढ़ना चाहेंगे और फिर देख सकते हैं कि आपके प्रश्न को शब्द देने का एक बेहतर तरीका है, जो बेहतर है कि आप क्या कर रहे हैं, इस पर निर्भर करेगा कि आपका कोड ऑब्जेक्ट/चर का उपयोग कैसे कर रहा है। http://forum.ragezone.com/f683/synchronised-vs-reentrantlocks-696540/ –

उत्तर

18

सिंक्रनाइज़ एक समय में एक थ्रेड में अनुमति देता है।

पढ़ें/लिखें ताले कई पाठकों में एक ही समय में अनुमति देते हैं, लेकिन केवल अगर कोई लेखक पहले से ही नहीं है। इसलिए कुछ उपयोग परिदृश्यों के तहत हम बेहतर सहमति प्राप्त कर सकते हैं, क्योंकि पाठक आबादी एक साथ आगे बढ़ सकती है।

जावा एपीआई documentation संग्रह कक्षाओं का उदाहरण देता है जो लेखकों की तुलना में अधिक पाठकों की अपेक्षा करते हैं।

11

locking article by Brian विस्तार से प्रत्येक दृष्टिकोण के पेशेवरों और विपक्ष बताते हैं।

लॉक ढांचे तुल्यकालन के लिए एक संगत प्रतिस्थापन है, जो सिंक्रनाइज़ द्वारा नहीं प्रदान की कई विशेषताएं है, साथ ही कार्यान्वयन बेहतर विवाद के तहत प्रदर्शन की पेशकश प्रदान करता है। हालांकि, इन स्पष्ट लाभों का अस्तित्व का एक अच्छा पर्याप्त कारण नहीं है, हमेशा सिंक्रनाइज़ करने के लिए ReentrantLock पसंद करते हैं। इसके बजाय, निर्णय लें कि क्या आप को पुनर्विक्रेता लॉक की शक्ति की आवश्यकता है। में अधिकांश मामलों में, आप नहीं करेंगे - सिंक्रनाइज़ेशन केवल ठीक काम करता है, सभी JVMs पर काम करता है, डेवलपर्स की विस्तृत श्रृंखला द्वारा समझा जाता है, और कम त्रुटि-प्रवण है। के लिए लॉक सहेजें जब आपको वास्तव में इसकी आवश्यकता है। उन मामलों में, आपको खुशी होगी कि आपके पास यह है।

संबंधित मुद्दे