O código é seguinte:
package Diagnotisc;
public class Questao64 extends Thread{
public void restart(){
startMe();
}
public static void startMe(){
synchronized (Questao64.class){
Questao64.class.notifyAll();
System.out.println("Trying to Notify");
}
}
public void run(){
try{
synchronized (this){
wait();
System.out.println("Nofified");
}
}catch (InterruptedException e){
}
}
public static void main (String args[]){
Questao64 q = new Questao64();
q.start();
q.restart();
}
}
Ele imprimirá apenas “Trying to Notify”.
Entao, eu gostaria de mudar este codigos para imprimir tambem “Nofified”. Modifiquei a linha " synchronized (this){" para “synchronized (Questao64.class){”. Mas lancara uma excecao IllegalMonitorStateException durante execução.
Alguem tem alguma ideia para arrumar estes codigos para imprimir “Nofified” e “Trying to Notify” sem lancar a exceção?
Grato