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

हम Java में Synchronized Blocks का उपयोग कब कर सकते हैं?

एक सिंक्रनाइज़ किया गया अवरुद्ध करें कोड का एक टुकड़ा है जिसका उपयोग विधि के किसी विशिष्ट संसाधन पर सिंक्रनाइज़ेशन करने के लिए किया जा सकता है। एक सिंक्रनाइज़ किया गया ब्लॉक किसी साझा संसाधन के लिए किसी ऑब्जेक्ट को लॉक करने के लिए उपयोग किया जाता है और एक सिंक्रनाइज़ ब्लॉक का दायरा सिंक्रनाइज़ की गई विधि से छोटा होता है .

सिंटैक्स

synchronized(object) {
   // block of code
}

यहाँ, एक ऑब्जेक्ट ऑब्जेक्ट को सिंक्रनाइज़ किए जाने का संदर्भ है। एक सिंक्रोनाइज़्ड ब्लॉक यह सुनिश्चित करता है कि किसी विधि के लिए कॉल जो किसी ऑब्जेक्ट का सदस्य है, केवल तभी होता है जब वर्तमान थ्रेड ऑब्जेक्ट के मॉनिटर में सफलतापूर्वक प्रवेश कर गया हो।

उदाहरण

class TicketCounter {
   int availableSeats = 2;
   void bookTicket(String name, int numberOfSeats) {
      if((availableSeats >= numberOfSeats) && (numberOfSeats > 0)) {
         System.out.println(name+" : "+ numberOfSeats + " Seats Booking Success");
         availableSeats -= numberOfSeats;
      } else {
         System.out.println(name +" : Seats Not Available");
      }
   }
}
class TicketBookingThread extends Thread {
   TicketCounter tc;
   String name;
   int seats;
   TicketBookingThread(TicketCounter tc, String name, int seats) {
      this.tc = tc;
      this.name = name;
      this.seats = seats;
   }
   public void run() {
      synchronized(tc) { // synchronized block
         tc.bookTicket(name, seats);
      }
   }
}
public class SynchronizedBlockTest {
   public static void main(String[] args) {
      TicketCounter tc = new TicketCounter();
      TicketBookingThread t1 = new TicketBookingThread(tc, "Adithya", 2);
      TicketBookingThread t2 = new TicketBookingThread(tc, "Jai", 2);
      t1.start();
      t2.start();
   }
}

आउटपुट

Adithya : 2 Seats Booking Success
Jai : Seats Not Available

  1. हम जावा में पैक () विधि का उपयोग कब कर सकते हैं?

    द पैक() विधि विंडो . में परिभाषित है जावा में वर्ग और यह फ्रेम को आकार देता है ताकि इसकी सभी सामग्री उनके पसंदीदा आकार पर या उससे ऊपर हो। पैक() . का एक विकल्प विधि setSize() . को कॉल करके स्पष्ट रूप से एक फ्रेम आकार स्थापित करना है या सेटबाउंड्स () तरीके। सामान्य तौर पर, पैक () . का उपयोग करते हु

  1. एक अमूर्त वर्ग का उपयोग कब करें और जावा में इंटरफ़ेस का उपयोग कब करें?

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

  1. SAP में हम Java Connector का उपयोग कर सकते हैं

    आप DDP का अपना कार्यान्वयन बना सकते हैं और फिर Environment.registerDestinationDataProvider() का उपयोग करके पंजीकरण कर सकते हैं।