Hi!
Achtung folgendes Beispiel ist rein theoretischer Natur und muss praktisch gesehen nicht unbedingt Sinn machen.
Ich habe eine Klasse A, die Events von einer Uhr empfängt. Diese Uhr aktualisiert sehr schnell ihre Zeit. Die Klasse A soll aber nur jede Sekunde der Uhr die Zeit der Uhr anzeigen. Jetzt habe ich mir überlegt, wie ich das realisieren könnte:
1) Klasse A lässt einen Thread laufen, der 1 Sekunde langt sleept und nur wenn er nicht sleept, werden empfangene Events behandelt. Was passiert eiegentlich, wenn eine Methode eines Threads aufgerufen wird, der sleept?
2) Wenn ich in Klasse A überlege, ob ich ein empfangenes Event behandele oder ignoriere, schaue ich mir die Differenz zwischen der jetzigen Systemzeit und die Systemzeit der letzten Eventbehandlung an. Nur wenn diese DIfferenz >= 1 Sekunde ist, behandele ich das Event. Hierzu brauche ich keinen Thread.
Was würdet ihr machen und wie würdet ihr die Frage in 1) beantworten?
Achtung folgendes Beispiel ist rein theoretischer Natur und muss praktisch gesehen nicht unbedingt Sinn machen.
Ich habe eine Klasse A, die Events von einer Uhr empfängt. Diese Uhr aktualisiert sehr schnell ihre Zeit. Die Klasse A soll aber nur jede Sekunde der Uhr die Zeit der Uhr anzeigen. Jetzt habe ich mir überlegt, wie ich das realisieren könnte:
1) Klasse A lässt einen Thread laufen, der 1 Sekunde langt sleept und nur wenn er nicht sleept, werden empfangene Events behandelt. Was passiert eiegentlich, wenn eine Methode eines Threads aufgerufen wird, der sleept?
2) Wenn ich in Klasse A überlege, ob ich ein empfangenes Event behandele oder ignoriere, schaue ich mir die Differenz zwischen der jetzigen Systemzeit und die Systemzeit der letzten Eventbehandlung an. Nur wenn diese DIfferenz >= 1 Sekunde ist, behandele ich das Event. Hierzu brauche ich keinen Thread.
Was würdet ihr machen und wie würdet ihr die Frage in 1) beantworten?