假设目标为 10ms:
方法1. sleep 0.01
方法2.usleep 10000 (usleep为十的负六次方秒,详细见man usleep)
可以使用sleep()方法。
sleep()方法拥有一个参数,它控制睡眠的长短,以毫秒计算。sleep()方法会抛出InterruptedException,所以一定在try-catch块里面使用它。
示例代码如下:
public class A implements Runnable{int i = 0
public static void main(String[] args){
A a1 = new A()
A a2 = new A()
a1.run()
a2.run()
}
public void run(){
while(++i <= 100){
System.out.println(i)
try{
Thread.sleep(50)
}catch(Exception e){
e.printStackTrace()
}
}
}
}
注意,sleep()方法并不保证线程醒来后进入运行,只能保证它进入就绪状态。
linuxsleep函数不准解决办法如下:如下面的一段程序:
应用程序:
#include <syswait.h>
usleep(n) //n微秒
Sleep(n)//n毫秒
sleep(n)//n秒
驱动程序:
#include <linux/delay.h>
mdelay(n) //milliseconds 其实现
#ifdef notdef
#define mdelay(n) (\
{unsigned long msec=(n)while (msec--) udelay(1000)})
#else,linuxsleep函数不准就可以调整为正确的了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)