除非您使用专门为此设计的语言/框架,否则现代OS中的时序永远都不是精确的。但是,您可以在大多数操作系统中以合理的不确定性进行工作。但是“合理”取决于您要解决的问题。
在Java中,Thread.sleep是一个非常基本的实现,我认为这太过分了。Java提供这些基本线程工具不是因为它们是最佳解决方案,而是因为它们是基本工具。Java还提供了许多其他更复杂的工具,这些工具可能会更好地满足您的需求。
在示例中,如果您希望“精确”计时,则可以改用ScheduledExecutorService,后者使用OS调度服务来提供至少毫秒甚至十亿分之一秒的精度。尽管它不精确到十亿分之一秒(尽管有报价),但通常比Thread.sleep要精确得多。但是,在严重超载的系统上,这两种方法都不准确。如果这足以解决您的问题,那么您应该这样做。否则,您需要其他语言/执行环境。



