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

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

WBOY
Freigeben: 2023-09-03 10:21:09
nach vorne
762 Leute haben es durchsucht

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
}
Nach dem Login kopieren

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();
   }
}
Nach dem Login kopieren

Ausgabe

Adithya : 2 Seats Booking Success
Jai : Seats Not Available
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage