Normal
das Notify geht immer an den, bei dem es aufgerufen wird.bsp:ThreadA:[code=Java]void doSmth() { for(int i = 0; i < 3; i++) { try { wait(); } catch (Exception e) {} System.out.println(i); }}[/code]ThreadB:[code=Java]void doSmthElse() { Thread threadA = ...//Erzeuge ThreadA und lasse dort die soSmth()-Methode laufen threadA.notify(); // Hierdurch wird der threadA wieder freigegeben und es kommt zur Ausgabe von 0}[/code]du musst also notify auf dem Objekt aufrufen, auf dem auch wait aufgerufen wurde.
das Notify geht immer an den, bei dem es aufgerufen wird.
bsp:
ThreadA:
[code=Java]void doSmth() {
for(int i = 0; i < 3; i++) {
try {
wait();
} catch (Exception e) {}
System.out.println(i);
}
}[/code]
ThreadB:
[code=Java]void doSmthElse() {
Thread threadA = ...//Erzeuge ThreadA und lasse dort die soSmth()-Methode laufen
threadA.notify(); // Hierdurch wird der threadA wieder freigegeben und es kommt zur Ausgabe von 0
du musst also notify auf dem Objekt aufrufen, auf dem auch wait aufgerufen wurde.