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

In Java, when can we use synchronized blocks?

WBOY
Release: 2023-09-03 10:21:09
forward
762 people have browsed it

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
}
Copy after login

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

Output

Adithya : 2 Seats Booking Success
Jai : Seats Not Available
Copy after login

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!

Related labels:
source:tutorialspoint.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template