Hi,
ich frage Werte von einem externen Sensor ab. Hierzu sende ich einen Befehl an diesen und warte, bis der Sensor eine Callback-Funktion aufgruft. Das Warten sieht vereinfacht so aus:
im Callback wird dann mit notify() das Warten beendet. Vereinfacht also:
Ist es möglich, dass die callBackFun() aufgerufen wird, noch bevor wait() ausgeführt wird; der Sensor also so schnell antwortet, dass notify() vor dem Aufruf von wait() stattfindet? Wenn ja, wie löst man das Problem?
Gruß Milo
ich frage Werte von einem externen Sensor ab. Hierzu sende ich einen Befehl an diesen und warte, bis der Sensor eine Callback-Funktion aufgruft. Das Warten sieht vereinfacht so aus:
Java:
this.send(packet); // Sende Anfrage an Sensor und warte nun auf dessen Antwort
synchronized( this.packet ) {
try {
this.packet.wait(10000);
}
catch ( Exception e ) {
// Fehler
}
}
im Callback wird dann mit notify() das Warten beendet. Vereinfacht also:
Java:
public void callBackFun() {
synchronized( this.packet ) {
this.packet.notify();
}
}
Ist es möglich, dass die callBackFun() aufgerufen wird, noch bevor wait() ausgeführt wird; der Sensor also so schnell antwortet, dass notify() vor dem Aufruf von wait() stattfindet? Wenn ja, wie löst man das Problem?
Gruß Milo
Zuletzt bearbeitet: