Cet article présente deux chaînes pour la mise en œuvre multi-threading de problèmes de billetterie de plusieurs fenêtres, à savoir synchronisé, lock () et déverrouiller ()
Le code spécifique est le suivant:
Le premier type:
Package Runnable; import java.util.concurrent.locks.lock; Importer java.util.concurrent.locks.rentrantlock; / * * Synchronisation * Il existe deux façons de verrouiller * ici: * 1.Synchronized * 2.lock () et unlock () * / public class myrunnable implémente Runnable {private int ticket = 100; // définir le verrouillage de verrouillage privé Lock = new reentrantLock (); public void run () {while (true) {// Lock Lock.lock (); if (billets> 0) {try {Thread.Sleep (100); } Catch (InterruptedException e) {// TODO Block de catch généré automatiquement e.printStackTrace (); } System.out.println (thread.currentThread (). GetName () + "vendu" + (tickets--) + "billets"); } lock.unlock (); }}}résultat:
Le deuxième type:
Package Runnable; / * * Synchronisé * Il existe deux façons de verrouiller * ici: * 1.Synchronisé * 2.lock () et unlock () * / public class myrunnable implémente Runnable {private int ticket = 100; public void run () {while (true) {synchronisé (this) {if (tickets> 0) {try {thread.sleep (100); } Catch (InterruptedException e) {// TODO Block de catch généré automatiquement e.printStackTrace (); } System.out.println (thread.currentThread (). GetName () + "vendu" + (tickets--) + "billets"); }}}}}résultat:
Package Runnable; classe publique runNableDemo {public static void main (String [] args) {myrunnable myrunnable = new myrunnable (); Thread t1 = nouveau thread (myrunnable, "fenêtre un"); Thread t2 = nouveau thread (myrunnable, "fenêtre deux"); Thread t3 = nouveau thread (myrunnable, "fenêtre trois"); t1.start (); t2.start (); t3.start (); }}Je ne sais pas si c'était une coïncidence ou quelque chose, mais quand j'exécutais ces deux petits cas multiples, l'ordinateur s'est soudainement coincé et j'ai rapidement éteint Eclipse.
Il y a des déclarations sur la fin du processus et n'ont pas été ajoutées, veuillez vous y référer vous-même.
Ce qui précède est l'intégralité du contenu de cet article sur l'exemple de problème de billetterie de fenêtre Java. J'espère que cela sera utile à la répression. Si vous avez des questions, veuillez laisser un message à tout moment et attendez avec impatience vos précieux commentaires.