有谁知道一个为Java提供Thread.sleep()的库,该库的错误不超过1-2毫秒?
我尝试了睡眠,错误测量和BusyWait的混合,但在不同的Windows机器上却无法获得这种可靠性。
如果该实现也可用于Linux和MacOS,则它可以是本机实现。
编辑
Nick提供的链接(http://blogs.oracle.com/dholmes/entry/inside_the_hotspot_vm_clocks)是了解Java各种计时器/睡眠/时钟问题的一个很好的资源。
我正在研究计算机硬件,在那里我们了解到使用硬件计时器比软件延迟获得更准确的结果。我已经在汇编中编写了1毫秒的软件延迟,我可以启动一个进程,使用这个延迟每毫秒重复一次,并使用计数器每100毫秒做一些其他事情,这种技术不如使用我现在要使用的硬件内置的硬件计时器准确。 所以我想知道Java内置的计时有多精确?我们有< code > system . current time millis 和< code
问题内容: 我正在编写需要定时精确的代码。我用机器人进行一些操作,然后我用了行动之间要经过的。但是我没有得到最好的结果,因为当我搜索它时,它是不准确的。做到这一点的最佳方法是什么?我的意思是用其他方法模拟。 问题答案: 除非您使用专门为此设计的语言/框架,否则现代OS中的时序永远都不是精确的。但是,您可以在大多数操作系统中以合理的不确定性进行工作。但是“合理”取决于您要解决的问题。 在Java中,
问题内容: 看来不是很准确。 看到这个例子: 结果是(在Windows XP上): 为什么不是呢?以及如何获得当前时间的精确毫秒数? 问题答案: 这是完全可以预期的。您会在.NET上使用看到相同的东西。(有关该主题的面向.NET的观点,请参阅Eric Lippert的博客文章。) 您可以使用来获得更精确的计时器 ,仅用于测量 -这并不意味着要给出 绝对的 时间,而只是用于测量 间隔 。 我不知道从
我正在编写一个代码,希望在计时时有一定的精度。我使用机器人做一些动作,然后使用,以便在操作之间运行。但我并没有得到最好的结果,因为当我搜索它时,睡眠不准确。实现这一目标的最佳方式是什么?我的意思是模拟线程。用其他方法睡眠。
问题内容: 当我执行以下程序时,我就知道了 精度问题 : 输出为: (请原谅无组织的输出)。我注意到了几件事: sin 30即存储为。 棕褐色45即存储为。 tan 90即或存储为(这是一个非常大的数字)。 自然,我很困惑地看到输出(即使在解密输出之后)。 所以我读了这篇文章,最佳答案告诉我: 这些精度问题是由于浮点数>点号的内部表示而引起的,您无法做很多事情来避免这种情况。 顺便说一下,使用现代
问题内容: 我在标准Windows命令窗口中有一个正在运行的Java进程。即我已经运行’cmd’并在java -jar中键入… 我需要尽可能获得所有线程的完整堆栈转储。 我记得在Linux下,您可以通过quit命令上的选项将消息发送到JVM。 在此文件中为太阳状态 若要在Windows 95或Windows NT平台上生成堆栈跟踪,请在运行Java程序的窗口中输入键序列,或单击窗口上的“关闭”按钮