Maison > Java > javaDidacticiel > En Java, quand peut-on utiliser des blocs synchronisés ?

En Java, quand peut-on utiliser des blocs synchronisés ?

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Libérer: 2023-09-03 10:21:09
avant
796 Les gens l'ont consulté

En Java, quand peut-on utiliser des blocs synchronisés ?

Synchronisation Block est un morceau de code qui peut être utilisé pour effectuer une synchronisation sur n'importe quelle ressource spécifique d'une méthode. Les Blocs synchronisés sont utilisés pour verrouiller les objets de toute ressource partagée, et la portée des blocs synchronisés est plus petite que celle des méthodes synchronisées.

Syntaxe

synchronized(object) {
   // block of code
}
Copier après la connexion

Ici, Object est une référence à l'objet en cours de synchronisation. Un bloc synchronisé garantit que les méthodes membres d'un objet ne sont appelées qu'une fois que le thread actuel est entré avec succès dans le moniteur de l'objet.

Exemple

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();
   }
}
Copier après la connexion

Sortie

Adithya : 2 Seats Booking Success
Jai : Seats Not Available
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal