Das ist wohl eine Problem für die Profis hier:
Gerade ist mir aufgefallen dass Thread.sleep(1); nicht das geünschte Ergebnis liefert, statt 1 ms wartet der Thread ca. 30ms, bei mehrmaliger Ausführung hintereinander nähert man sich dann im Schnitt langsam an. Auch sleep(0,1) unter Zuhilfename der Nanosekunden schafft da keine Abhilfe, weswegen sich mir im Moment grad nicht erschliesst wieso ich Nanosekunden hier überhaupt einsetzen kann?
Folgendes Beispiel verdeutlicht es:
Was tun wenn ich also nur eine kurze und möglichst exakte Wartezeit von ~1-2 ms haben will?
Gerade ist mir aufgefallen dass Thread.sleep(1); nicht das geünschte Ergebnis liefert, statt 1 ms wartet der Thread ca. 30ms, bei mehrmaliger Ausführung hintereinander nähert man sich dann im Schnitt langsam an. Auch sleep(0,1) unter Zuhilfename der Nanosekunden schafft da keine Abhilfe, weswegen sich mir im Moment grad nicht erschliesst wieso ich Nanosekunden hier überhaupt einsetzen kann?
Folgendes Beispiel verdeutlicht es:
Java:
public class Test {
/**
* @param args
* @throws InterruptedException
*/
public static void main(String[] args) throws InterruptedException {
long millis = 100;
long start = System.currentTimeMillis();
for(int i=0;i<millis; i++)
{
Thread.sleep(1);
}
long end = System.currentTimeMillis();
System.out.println("TIME: "+(end-start));
}
}
Was tun wenn ich also nur eine kurze und möglichst exakte Wartezeit von ~1-2 ms haben will?