Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Java

जावा में रीएंट्रेंटलॉक और सिंक्रोनाइज़्ड के बीच अंतर

साझा संसाधन पर एकाधिक थ्रेड द्वारा लॉक प्राप्त करने के दो तरीके हैं। एक है रीएंट्रेंट लॉक (या ReadWriteLock ) और दूसरा है सिंक्रोनाइज़्ड मेथड का इस्तेमाल करना।

जावा 5 से जावा संगामिति पैकेज में ReentrantLock वर्ग प्रदान किया गया है।

यह लॉक इंटरफ़ेस का कार्यान्वयन है और जावा डॉक्स के अनुसार, लॉक इंटरफ़ेस का कार्यान्वयन सिंक्रनाइज़ विधि का उपयोग करके प्राप्त किए जाने की तुलना में अधिक व्यापक संचालन प्रदान करता है।

Sr. नहीं. कुंजी ReentrantLock सिंक्रनाइज़ किया गया
1
लॉक प्राप्त करें
रीएंट्रेंट लॉक क्लास थ्रेड द्वारा साझा संसाधन पर लॉक प्राप्त करने के लिए लॉक () विधियाँ प्रदान करता है
लॉक प्राप्त करने के लिए आपको केवल सिंक्रनाइज़ कीवर्ड लिखना होगा
2
रिलीज़ लॉक
लॉक जारी करने के लिए, प्रोग्रामर को अनलॉक () विधि को कॉल करना होगा
यह परोक्ष रूप से किया जाता है
3
बाधित करने की क्षमता
lockInterruptibility () विधि का उपयोग थ्रेड को बाधित करने के लिए किया जा सकता है
थ्रेड को बाधित करने का कोई तरीका नहीं है
4
निष्पक्षता
इस वर्ग के निर्माता के पास निष्पक्षता पैरामीटर है। यदि यह सत्य पर सेट है, तो सबसे लंबे समय तक प्रतीक्षा करने के लिए पहुँच प्रदान करने के पक्ष में है
* धागा
लॉक किसी विशेष एक्सेस ऑर्डर की गारंटी नहीं देता है
5
लॉक रिलीज़ ऑर्डर
लॉक किसी भी क्रम में जारी किया जा सकता है
ताला उसी क्रम में जारी किया जाना चाहिए जिस क्रम में उन्हें प्राप्त किया गया था

ReentrantLock का उदाहरण

public class ReentrantLockExample implements Runnable{
   private Lock lock=new ReentrantLock();
   @Override
   public void run() {
      try {
         lock.lock()
         //Lock some resource

      }
      catch (InterruptedException e) {
         e.printStackTrace();
      }
      finally {
         lock.unlock();
      }
   }
}

सिंक्रनाइज़्ड लॉक का उदाहरण

public class SynchronizedLockExample implements Runnable{
   @Override
   public void run() {
      synchronized (resource) {
         //Lock some resource
      }
   }
}

  1. जावा में समवर्ती हैश मैप और सिंक्रोनाइज़्ड हैशमैप के बीच अंतर

    समवर्ती हैशमैप एक वर्ग है जिसे jdk1.5 में पेश किया गया था। समवर्ती हैश मानचित्र मानचित्र को जोड़ते या अद्यतन करते समय केवल बकेट स्तर पर ताले लागू करता है जिसे खंड कहा जाता है। तो, एक समवर्ती हैश मानचित्र मानचित्र पर समवर्ती पढ़ने और लिखने के संचालन की अनुमति देता है। सिंक्रोनाइज़्ड हैशमैप (Collect

  1. जावा में इटरेटर और एन्यूमरेशन के बीच अंतर

    इटरेटर और एन्यूमरेशन दोनों ही संग्रह से किसी तत्व को पार करने और एक्सेस करने के लिए कर्सर हैं। वे दोनों संग्रह ढांचे से संबंधित हैं। संग्रह ढांचे में JDK1.0 और Iterator में JDK.1.2 संस्करण में गणना जोड़ी गई थी। एन्यूमरेशन संग्रह में संरचनात्मक परिवर्तन नहीं कर सकता क्योंकि इसमें संग्रह में तत्व तक

  1. जावा में ऐरेलिस्ट और हैशसेट के बीच अंतर

    हैशसेट और ऐरेलिस्ट दोनों ही जावा संग्रह ढांचे के कुछ सबसे महत्वपूर्ण वर्ग हैं। ArrayList और हैशसेट के बीच महत्वपूर्ण अंतर निम्नलिखित हैं। सीनियर। नहीं. कुंजी ऐरेलिस्ट हैशसेट 1 कार्यान्वयन ArrayList सूची इंटरफ़ेस का कार्यान्वयन है। दूसरी ओर हैशसेट एक सेट इंटरफ़ेस का कार्यान्वयन है। 2 आंतरिक क