Este artículo presenta dos grilletes para la implementación de múltiples subprocesos de problemas de ticket de ventana múltiples, a saber, Sincronized, Lock () y desbloquear ()
El código específico es el siguiente:
El primer tipo:
paquete ejecutable; import java.util.concurrent.locks.lock; import java.util.concurrent.locks.reentrantlock; / * * Sincronización * Hay dos formas de bloquear * aquí: * 1.synChronized * 2.Lock () y desbloquear () */ public class MyRunnable implementos runnable {private int tickets = 100; // Definir bloqueo de bloqueo privado bloqueo = nuevo reentrantlock (); public void run () {while (true) {// bloquear bloque.lock (); if (tickets> 0) {try {thread.sleep (100); } Catch (InterruptedException e) {// TODO Auto Generado Bloque E.PrintStackTrace (); } System.out.println (thread.currentThread (). GetName () + "vendido" + (tickets--) + "tickets"); } Lock.unlock (); }}}resultado:
El segundo tipo:
paquete ejecutable; / * * Sincronizado * Hay dos formas de bloquear * aquí: * 1.synChronized * 2.Lock () y desbloquear () */ public class MyRUnnable implementos runnable {private int tickets = 100; public void run () {while (true) {synChronized (this) {if (tickets> 0) {try {thread.sleep (100); } Catch (InterruptedException e) {// TODO Auto Generado Bloque E.PrintStackTrace (); } System.out.println (thread.currentThread (). GetName () + "vendido" + (tickets--) + "tickets"); }}}}}resultado:
paquete ejecutable; public class runnableMo {public static void main (string [] args) {myrunnable myrunnable = new MyRunnable (); Hilo t1 = nuevo hilo (myrunnable, "Window One"); Hilo t2 = nuevo hilo (myrunnable, "ventana dos"); Hilo t3 = nuevo hilo (myrunnable, "ventana tres"); t1.start (); t2.start (); t3.start (); }}No sé si fue una coincidencia o algo así, pero cuando estaba ejecutando estas dos pequeñas instancias de múltiples subprocesos, la computadora de repente se atascó y rápidamente apagué Eclipse.
Hay declaraciones sobre la finalización del proceso y no se han agregado, consultelo usted mismo.
Lo anterior es todo el contenido de este artículo sobre el ejemplo de problema de ticketing de ventana múltiple Java. Espero que sea útil para la represión. Si tiene alguna pregunta, deje un mensaje en cualquier momento y espere sus valiosos comentarios.