本文主要介绍如何使用Java线程的Sleep()的总结。通过示例代码进行了非常详细的介绍,对于大家的学习或者工作都有一定的参考价值。有需要的朋友下面跟边肖学习。
一、API简介
Thread.sleep()是Thread类的静态方法,使当前线程休眠并进入阻塞状态(暂停执行)。如果线程在睡眠状态被中断,它将抛出IterruptedException中断异常。主要方法如下:
[a] sleep(长毫秒)线程休眠毫秒。
sleep(long millis,int nanos)线程休眠毫秒纳秒。
Api文档:
二、使用方法
注意:调用sleep()方法在哪个线程中阻塞哪个线程。
公共类SleepDemo {
公共静态void main(String[] args)引发InterruptedException {
Process process=新流程();
Thread thread=新线程(进程);
Thread.setName('线程进程');
thread . start();
for(int I=0;i 10i ) {
system . out . println(thread . current thread()。getName()'-' I);
//阻塞主线程,休眠一秒钟
thread . sleep(1000);
}
}
}
/**
*线程类
*/
类进程实现Runnable {
@覆盖
公共无效运行(){
for(int I=0;i 10i ) {
system . out . println(thread . current thread()。getName()'-' I);
//睡眠一秒钟
尝试{
thread . sleep(1000);
} catch (InterruptedException e) {
e . printstacktrace();
}
}
}
}
执行结果:主线程执行一次后休眠一秒,放弃cpu。此时,进程线程执行一次后再休眠一秒,然后依次执行。
三、示例
下面的倒计时函数用于进一步说明sleep()方法的用法:
/**
* @Description:线程睡眠()方法
* @作者:韦士怀
* @日期:2018/11/11 21:31
* p
* 1.注意:使用sleep()方法的位置。如果在主线程执行代码中使用,则主线程被阻塞。如果其他线程执行代码,执行代码的线程将被阻塞。
* 2.案例:倒计时功能
*/
公共类TestSleepThread {
公共静态void main(String[] args)引发InterruptedException {
倒计时(10000);
}
/**
*倒计时方法
*
* @param mills从当前时间开始倒计时多少毫秒?
*/
公共静态无效倒计时(长磨坊){
Date endDate=新日期(system . current time millis()mills);
long end time=end date . gettime();
while (true) {
System.out.println(新的简单日期格式(' hh:mm:ss ')。格式(结束日期));
//下一秒钟
endDate=新日期(end Date . gettime()-1000);
//睡眠一秒钟
尝试{
thread . sleep(1000);
} catch (InterruptedException e) {
e . printstacktrace();
}
if(end time-end date . gettime()mills){
打破;
}
}
}
}
执行结果:
四、注意问题
sleep()方法是Thread类的静态方法。如果调用线程对象。sleep()方法不是线程,它会休眠。无论如何,执行sleep()方法的线程将会休眠。
[b]线程在睡眠到期时自动唤醒,并返回可运行状态(就绪),而不是运行状态。
关于Java线程的Sleep()使用方法的总结这篇文章到此为止。有关Java线程的sleep()的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望你以后能支持我们!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。