不,没有内置的结构可以做到这一点。
我想指出,您不应使用System.currentTimeMillis()在指定时间段内执行或延迟任务。而是使用System.nanoTime()。前一种方法在Windows中是不准确的,而后一种方法无论使用哪种操作系统都准确。您可以使用TimeUnit枚举轻松在以毫秒为单位的时间(或任何其他时间单位)与以纳秒为单位的时间之间切换。
for (long stop=System.nanoTime()+TimeUnit.SECONDS.tonanos(2);stop>System.nanoTime();) { }


