Este artigo apresenta dois grilhões para a implementação de vários threading de vários problemas de bilheteria de janela, nomeadamente sincronizados, Lock () e desbloqueio ()
O código específico é o seguinte:
O primeiro tipo:
pacote runnable; importar java.util.concurrent.locks.lock; importar java.util.concurrent.locks.reentrantlock; / * * Sincronização * Existem duas maneiras de bloquear * aqui: * 1.Synchronized * 2.lock () e desbloqueio () */ classe pública MyRunnable implementos runnable {private int tickets = 100; // define bloqueio de bloqueio de bloqueio = new reentrantlock (); public void run () {while (true) {// Lock Lock.lock (); if (tickets> 0) {tente {thread.sleep (100); } catch (interruptedException e) {// TODO BLOCO DE CATCH AUTOGERATIDO E.PRINTSTACKTRACE (); } System.out.println (thread.currentThread (). GetName () + "vendido" + (tickets--) + "tickets"); } lock.unlock (); }}}resultado:
O segundo tipo:
pacote runnable; / * * Sincronizado * Existem duas maneiras de bloquear * aqui: * 1.Synchronized * 2.lock () e desbloqueio () */ classe pública MyRunnable implementos runnable {private int tickets = 100; public void run () {while (true) {sincronizado (this) {if (tickets> 0) {try {thread.sleep (100); } catch (interruptedException e) {// TODO BLOCO DE CATCH AUTOGERATIDO E.PRINTSTACKTRACE (); } System.out.println (thread.currentThread (). GetName () + "vendido" + (tickets--) + "tickets"); }}}}}resultado:
pacote runnable; classe pública runnabledemo {public static void main (string [] args) {myRunnable myRunnable = new MyRunnable (); Thread t1 = novo thread (mirunnable, "janela um"); Thread T2 = novo thread (mirunnable, "janela dois"); Thread t3 = novo thread (myrunnable, "janela três"); t1.start (); t2.start (); t3.start (); }}Não sei se foi uma coincidência ou algo assim, mas quando eu estava executando essas duas pequenas instâncias com vários threads, o computador ficou de repente e eu rapidamente desliguei o eclipse.
Há declarações sobre o término do processo e não foram adicionadas, consulte você mesmo.
O exposto acima é o conteúdo inteiro deste artigo sobre o exemplo do problema de bilheteria de janela Java T-Thread. Espero que seja útil para a repressão. Se você tiver alguma dúvida, deixe uma mensagem a qualquer momento e aguarde seus comentários valiosos.