![JAVA中 如何使用延迟?,第1张 JAVA中 如何使用延迟?,第1张](/aiimages/JAVA%E4%B8%AD+%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%E5%BB%B6%E8%BF%9F%EF%BC%9F.png)
Java中主要有两种
方法来实现延迟,即:Thread和梁庆Timer\x0d\x0a\x0d\x0a1、普通延时用Thread.sleep(int)方法,这很简单。它将当前
线程挂起指定的毫秒数。如\x0d\x0atry \x0d\x0a{ \x0d\x0aThread.currentThread().sleep(1000)//毫秒 \x0d\x0a} \x0d\x0acatch(Exception e){} \x0d\x0a在这里需要解释一下线程沉睡的
时间。sleep()方法并不能够让程序"严格"的沉睡指定的时间。例如当使用5000作为sleep()方法的参数时,线 程可能在实际被挂起5000.001毫秒后才会继续运行。当然,对于一般的应用程序来说,sleep()方法对时间控制的精度足够了。\x0d\x0a\x0d\x0a2、但是如果要使用精确延时,最好使用Timer类:\x0d\x0aTimer timer=new Timer()//实例化Timer类 \x0d\x0atimer.schedule(new TimerTask(){ \x0d\x0apublic void run(){ \x0d\x0aSystem.out.println("退出") \x0d\x0athis.cancel()}},500)//五百毫秒 \x0d\x0a这种延时橡昌握比sleep精确。上述延时方法只运行一次,如果需要运行多次, 使用timer.schedule(new MyTask(), 1000, 2000)则每间隔2秒执行迅悄MyTask()
延时 *** 作,可以用下列伏缓方案:
方案1:线程阻告坦断
try {
Thread.currentThread().sleep(2000)//阻断2秒
} catch (InterruptedException e) {
e.printStackTrace()
}
方案缺友模2:使用Handler的postDelayed延迟 *** 作。
mHandler .postDelayed(mRunnable, 3000)// 在Handler中执行子线程并延迟3s。
private Runnable mRunnable = new Runnable() {
@Override
public void run() {
mHandler.sendEmptyMessage(1)
}
}
Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg)
//3s后执行代码
}
}。
评论列表(0条)