Heim >Java >javaLernprogramm >Wann können wir in Java synchronisierte Blöcke verwenden?

Wann können wir in Java synchronisierte Blöcke verwenden?

WBOY
WBOYnach vorne
2023-09-03 10:21:09746Durchsuche

Wann können wir in Java synchronisierte Blöcke verwenden?

Synchronisierung Block ist ein Codestück, das verwendet werden kann, um eine Synchronisierung für eine bestimmte Ressource einer Methode durchzuführen. Synchronisierte Blöcke werden zum Sperren von Objekten einer beliebigen gemeinsam genutzten Ressource verwendet, und der Umfang synchronisierter Blöcke ist kleiner als bei synchronisierten Methoden.

Syntax

synchronized(object) {
   // block of code
}

Hier ist Object ein Verweis auf das Objekt, das synchronisiert wird. Ein synchronisierter Block stellt sicher, dass die Mitgliedsmethoden eines Objekts erst aufgerufen werden, nachdem der aktuelle Thread erfolgreich in den Monitor des Objekts eingetreten ist.

Beispiel

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() {
<strong>      synchronized(tc) { // synchronized block
</strong>         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();
   }
}

Ausgabe

Adithya : 2 Seats Booking Success
Jai : Seats Not Available

Das obige ist der detaillierte Inhalt vonWann können wir in Java synchronisierte Blöcke verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen