Home  >  Article  >  Java  >  In Java, when can we use synchronized blocks?

In Java, when can we use synchronized blocks?

WBOY
WBOYforward
2023-09-03 10:21:09721browse

In Java, when can we use synchronized blocks?

Synchronization Block is a piece of code that can be used to perform synchronization on any specific resource of a method. Synchronization block is used to lock any shared resource object, and the scope of the synchronization block is smaller than synchronization method.

Syntax

synchronized(object) {
   // block of code
}

Here, Object is a reference to the object being synchronized. A synchronized block ensures that an object's member methods are called only after the current thread has successfully entered the object's monitor.

Example

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();
   }
}

Output

Adithya : 2 Seats Booking Success
Jai : Seats Not Available

The above is the detailed content of In Java, when can we use synchronized blocks?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:tutorialspoint.com. If there is any infringement, please contact admin@php.cn delete