exemplo de comunicação fio

E linha interativa: comunicação fio 
   método utilizado pela wait (), o Notificar () / notifyAll ();
a espera (): Deixe o thread atual para o estado bloqueado, e liberar o bloqueio.
notificar (): vigília é um fio wait (), se vários segmentos, acorde maior prioridade.
notifyAll (): acordar todos os fios a espera ().

Nota: wait (), notify () , notifyAll () só pode aparecer no bloco de código de sincronização, o método de sincronização
  invocação deve ser sincronizado método de sincronização do bloco ou no mesmo monitor de sincronização
  se a pessoa aparecerá IllegalMonitorStateException anormal
  a espera (), notificar (), notifyAll () é definido no pacote java.lang
exemplo:
Tópico pacote;

/ **
* @auto DH
* @Create 2020-03-28-17: 02
* /
class NumberDemo {
int privado Número;

NumberDemo público ( int Number) {
this.number = número;
}

a public void iterator1 () {


o tempo (para true) {
a sincronizado (o presente) {
this.notify ();
se (número <= 100) {
System.out.println (Thread.currentThread () getNome () + ":". + número);
número ++;
}
Try {
this.wait ();
} Catch (InterruptedException e) {
e.printStackTrace ();
}

}
}
}
}

Classe Test006 estende Thread {
privada NumberDemo numberDemo;

pública Test006 (NumberDemo numberDemo) {
this.numberDemo = numberDemo;
}

Public void run () {
this.numberDemo.iterator1 ();
}
}


Public class Thread006 {
public static void main (String [] args) {
NumberDemo numberDemo = new NumberDemo (0);
Test006 ts = new Test006 (numberDemo);
ts.setName ( "线程一");
Test006 TS2 = novo Test006 (numberDemo);
ts2.setName ( "线程二");
ts.start ();
ts2.start ();
}
}

Acho que você gosta

Origin www.cnblogs.com/kukai/p/12588941.html
Recomendado
Clasificación