,,Java Thread之Sleep()使用方法总结

,,Java Thread之Sleep()使用方法总结

本文主要介绍如何使用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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: