我想每23±0.1毫秒执行一次函数。 这可以在java中完成吗? 如果是的话如何? 在此先感谢!java中的定时器,精度为0.1毫秒,间隔为23毫秒
比方说,我想用SoTimeout 7毫秒具有HttpGet功能,我可以重复使用System.nanoTime()23 + -1毫秒?
我想每23±0.1毫秒执行一次函数。 这可以在java中完成吗? 如果是的话如何? 在此先感谢!java中的定时器,精度为0.1毫秒,间隔为23毫秒
比方说,我想用SoTimeout 7毫秒具有HttpGet功能,我可以重复使用System.nanoTime()23 + -1毫秒?
您可以使用System.nanoTime()获取时间并忙于等待,直到达到所需的时间。在大多数情况下,这必须优于0.1毫秒精度,但是仍然存在一个很小的风险,即您的线程无法运行,在这种情况下无法及时执行操作。
假设我想用soTimeout 7 ms有HttpGet函数,我可以吗用System.nanoTime()在23±1ms内重复一次? – user2114837 2013-04-24 13:24:52
是的。我建议你试试。顺便说一句,7 + 23是30,25毫秒是怎么进来的? – 2013-04-24 13:51:34
对不起我的错误,但我需要的是每23毫秒,运行7毫秒httpget,然后等待16毫秒总和23毫秒,并为23毫秒获得0.1毫秒的准确性。这是行得通的吗? – user2114837 2013-04-24 14:06:39
你可以显示你已经尝试过的任何代码吗?我们可以帮助您基于此。 – Uooo 2013-04-24 11:02:27
这可能有所帮助:https://blogs.oracle.com/dholmes/entry/inside_the_hotspot_vm_clocks – 2013-04-24 11:05:29
Duplicate:http://stackoverflow.com/questions/5132960/how-to-call-a-method-once-per-ms -in-java – BackSlash 2013-04-24 11:06:39