当前位置:嗨网首页>书籍在线阅读

19-线程的休眠和唤醒

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

1.5 线程的休眠和唤醒

有时,可能需要在指定的时间段暂停一个线程的执行。例如,一个程序中的某个线程需要每分钟检测一次传感器的状态,其余时间保持空闲。在空闲时间段,线程并不使用任何计算机资源。在空闲时间段之后,该线程由执行调度器选中,继续执行。可以使用 Thread 类的 sleep() 方法来达到该目的。该方法接收一个 long 类型的参数——该参数是线程将要暂停的时长。在暂停时间过后,JVM会重新给该线程分配CPU时间,该线程将继续执行,直到下一个 sleep() 指令。

还有一种途径,可以使用 TimeUnit 枚举元素的 sleep() 方法。该方法调用当前 Thread 类的 sleep() 方法,使当前线程进入休眠。但是,其接收的时长参数是以其代表的时间为单位的,其内部实现会在调用线程的方法时自动将该时长转化为毫秒单位的值。

本节将实现一个应用,即使用 sleep() 方法来打印每一秒的时间。