Hallo,
ich habe mich mal ganz einfach dran gemacht mir eine Klasse zu schreiben, mit der ich einfach Zeitmessungen machen kann ...nichts besonders...
Das Ganze ist mithilfe von einem HashMap realisert, der per String (Parameter start/stop) entsprechend dann System.currentMillis aufruft. etc.
Im result() werden dann alle Schlüssel mit den entsprechenden Werten mehr oder minder schön ausgegeben.
Das klappt auch wunderbar.
Nur wenn ich das Ganze jetzt mit im Rahmen eines Test mit unterschiedlichen Threads einsetzte falle ich auf die Nase....
sprich das "result()" wird von Thread 1 aufgerufen und löscht somit die Infos von z.B. Thread 2.
Jetzt die spannende Frage:
Wie kriegt man das Thread - Safe, dass es auch mit unterschiedlichen Threads sauber läuft...
Muss ich mit tatsächlich so Sachen wie Thread.getId() und/oder Thread.getName() als weiteres Unterscheidungskriterium heranziehen?
Oder gibt es etwas geschickteres?
Vielen Dank im Voraus.
MfG
Karl Heinz Marbaise
ich habe mich mal ganz einfach dran gemacht mir eine Klasse zu schreiben, mit der ich einfach Zeitmessungen machen kann ...nichts besonders...
Code:
TimeMeasure.start("marke");
....
TimeMeasure.stop("marke");
...
TimeMeasure.result();
Das Ganze ist mithilfe von einem HashMap realisert, der per String (Parameter start/stop) entsprechend dann System.currentMillis aufruft. etc.
Im result() werden dann alle Schlüssel mit den entsprechenden Werten mehr oder minder schön ausgegeben.
Das klappt auch wunderbar.
Nur wenn ich das Ganze jetzt mit im Rahmen eines Test mit unterschiedlichen Threads einsetzte falle ich auf die Nase....
sprich das "result()" wird von Thread 1 aufgerufen und löscht somit die Infos von z.B. Thread 2.
Jetzt die spannende Frage:
Wie kriegt man das Thread - Safe, dass es auch mit unterschiedlichen Threads sauber läuft...
Muss ich mit tatsächlich so Sachen wie Thread.getId() und/oder Thread.getName() als weiteres Unterscheidungskriterium heranziehen?
Oder gibt es etwas geschickteres?
Vielen Dank im Voraus.
MfG
Karl Heinz Marbaise