hallo, ich habe eine Frage zur Unterbrechungsbehandlung in Java, in meinem speziellem Fall auf einer Windows Kiste mit seriellem Unterbrechungssignal.
Es geht um folgende Software.: Sobald eine Information über den seriellen Eingang kommt soll diese unverzüglich abgearbeitet werden, dies ist mit einem EventListener realisiert.
Unabhängig aber gleichzeitig hierzu exestiert ein Thread der in Zeitintervallen eine längerweilige Operation durchführt um Daten zu laden, die dann dem EventListener dazu diehen die Anfrage richtig abzuarbeiten. Hierbei wird ein neues Datenobjekt erzeugt und erst ganz am Schluss der Ladeoperation wenn das Datenobjekt fertig ist, wird es auf das Datenobjekt der aktiven EventListener Behandlung umgezeigert. Somit sind die 2 Threads bis auf die Umzeigeroperation (die ja fast 0 Zeit braucht unabhängig voneinander).
Nun habe ich aber folgende Frage.:
Wenn ein serielles Signal ankommt, wird ja dieses ohne Verzögerung über die Steuerleitung des Buses an die Cpu gemeldet, diese löst dann eine Unterbrechungsbehandlung aus, und bearbeitet diese zuerst. In Fall von Java, wird dann diese Unterbrechungsgehandlung direkt auf den EventListener gemappt? Oder muss ich weitere Vorkehrungen treffen sodass ich sicher Stellen kann dass dieses signal sofort abgearbeitet wird?
Lässt sich vllt mit Prioritäten der Threads irgendetwas machen? Gibts sowas in Java.
Bis jetzt läuft die Software gut, jedoch habe ich ein schlechtes gewissen, dass ein Fall eintrefen könnte in dem die Software nicht schnell genug reagiert.
Bin dankbar um jede Aufklärung.
Danke
Es geht um folgende Software.: Sobald eine Information über den seriellen Eingang kommt soll diese unverzüglich abgearbeitet werden, dies ist mit einem EventListener realisiert.
Unabhängig aber gleichzeitig hierzu exestiert ein Thread der in Zeitintervallen eine längerweilige Operation durchführt um Daten zu laden, die dann dem EventListener dazu diehen die Anfrage richtig abzuarbeiten. Hierbei wird ein neues Datenobjekt erzeugt und erst ganz am Schluss der Ladeoperation wenn das Datenobjekt fertig ist, wird es auf das Datenobjekt der aktiven EventListener Behandlung umgezeigert. Somit sind die 2 Threads bis auf die Umzeigeroperation (die ja fast 0 Zeit braucht unabhängig voneinander).
Nun habe ich aber folgende Frage.:
Wenn ein serielles Signal ankommt, wird ja dieses ohne Verzögerung über die Steuerleitung des Buses an die Cpu gemeldet, diese löst dann eine Unterbrechungsbehandlung aus, und bearbeitet diese zuerst. In Fall von Java, wird dann diese Unterbrechungsgehandlung direkt auf den EventListener gemappt? Oder muss ich weitere Vorkehrungen treffen sodass ich sicher Stellen kann dass dieses signal sofort abgearbeitet wird?
Lässt sich vllt mit Prioritäten der Threads irgendetwas machen? Gibts sowas in Java.
Bis jetzt läuft die Software gut, jedoch habe ich ein schlechtes gewissen, dass ein Fall eintrefen könnte in dem die Software nicht schnell genug reagiert.
Bin dankbar um jede Aufklärung.
Danke