Вы не можете спать менее миллисекунды, используя Thread.sleep(long)
- и на многих платформах вы обнаружите, что даже сон в течение одной миллисекунды будет на самом деле спать дольше (например, 15 миллисекунд) в зависимостина детализацию системных часов.
Другими словами, вы в принципе не можете делать то, что пытаетесь сделать с Thread.sleep(long)
- и попытка получить время с точностью до миллисекунды проблематична впервое место.Вместо этого вы можете попробовать использовать System.nanoTime()
, что соответствует только , подходящему для прошедшего времени (в данном случае это нормально) - и вы могли бы захотеть рассмотреть вращение-блок, чтобы ждать до нужного времени, вместо того, чтобы спать.
В большинстве случаев плохая идея даже попытаться выполнить что-то с фиксированной скоростью 1000 вызовов в секунду, хотя ..какой тут случай использования?Там может быть лучший подход.
РЕДАКТИРОВАТЬ: я только что заметил, что есть Thread.sleep(millis, nanos)
- вы могли бы попробовать , используя этои спать в течение, скажем, 0 миллисекунд и 100000 наносекунд.Вы должны знать, что на большинстве платформ это на самом деле не будет делать то, что вы хотите.Вы можете попробовать его для своего конкретного случая использования, но я бы лично не слишком надеялся.