2016-05-26 8 views
-2

Ich benötige ein einfaches, hochleistungsfähiges, threadsicheres und wenig genaues Zeitmessgerät (nur bis zu Hunderten von Millisekunden), um die verstrichene Zeit in meinem Thread-Safe zu messen Funktion.Java 1.8: Abgelaufene Zeit threadsicher messen

Wie erreichen Sie es in Java?

nahm ich einen Blick auf System.currentTimeMillis und System.nanoTime aber keine Erwähnung jeder Thread-Sicherheit

garantiert
+0

Ich habe nicht mehr eine Java 1.8 API Referenz, aber vielleicht 'System.currentTimeMillis()' stammt so weit zurück? Alternativ hat der nullary-Konstruktor für 'java.util.Date' Ihnen immer ein' Date' gegeben, das die aktuelle Zeit darstellt, und Sie können seine 'getTime()' -Methode verwenden, um diese in Millisekunden seit der Epoche zu erhalten. Beide Ansätze sollten einen einfachen Timer unterstützen. –

+0

Ist 'currentTimeMillis' Thread-sicher? Ich kann keine Dokumentation finden, die es ausdrücklich erwähnt – lolski

+0

Es muss sein - weil Aufrufe von 'currentTimeMillis()' jederzeit von jedem Code (JRE und Benutzercode) auftreten können. Es gäbe keine Möglichkeit, Anrufe von verschiedenen Quellen zuverlässig zu synchronisieren. –

Antwort

2

keine Dokumentation über Es fadenTrittSicherheit ist, weil es nicht notwendig ist.

Die Methoden erhalten einen langen Wert vom zugrunde liegenden Betriebssystem und geben es zurück.

Wo denken Sie sind die Probleme der Fadensicherheit?