线程优先级和线程准确性

Tea*_*App 7 java multithreading

线程优先级会提高准确性Thread.sleep(50);吗?

我们知道当你打电话给睡眠50毫秒时,线程不准确,但它是否会提高准确度?如果线程列为MAX_PRIORITY.

将会感谢任何解释.

Pet*_*rey 5

睡眠的准确性取决于操作系统.如果您想要更高的准确度,可以使用其他操作系统 另一种方法是不要睡觉,你可以忙着等.或者你可以睡45秒,然后忙等5毫秒.

如果你有一个你需要每秒运行20次的任务,你最好跟踪下一次运行任务的时间并且当时运行它(而不是等待一段固定的时间)就像你在睡眠之间做的那样还需要一些时间.

BTW这就是ScheduledExecutorService.scheduleAtFixedRate为您所做的事情.

它可以在具有微秒精度的任务之间休眠(假设OS支持它)但它试图不漂移.