Java 多线程 - 线程 - 休眠与恢复
博客专区 > pan_1308 的博客 > 博客详情
Java 多线程 - 线程 - 休眠与恢复
pan_1308 发表于3个月前
Java 多线程 - 线程 - 休眠与恢复
  • 发表于 3个月前
  • 阅读 3
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

一、概述

使用情景:在某一个预期的时间中断线程的执行。

eg: 程序的一个县城每隔一分钟检查一次 传感器的状态,其余时间什么都不做,在这段空闲时间,线程不占用任务的计算机资源。当它继续执行的 cpu 时钟来临时,JVM 会选中它继续执行。这个过程可以使用 sleep() 方法来实现。

sleep() -> 接受整型数值作为参数,以表明线程挂起执行的毫秒数。当线程休眠的时间结束了,JVM会分给它 cpu 时钟,线程将继续执行它的指令。

Thead 类的 sleep() 和 TimeUnit类的 sleep() 都可以 使当前线程休眠。

二、实现

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.concurrent.TimeUnit;

/***
 * 使用 捕获 InterruptedException 异常来控制 线程的 中断
 */
public class FileClick implements Runnable{
    
	public void run() {
			for(int i=0;i<10;i++){
				System.out.println(Thread.currentThread().getName() + "-i=>" + i+",当前时间:" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
				try {
					TimeUnit.SECONDS.sleep(1);
				} catch (InterruptedException e) {
					System.out.println(Thread.currentThread().getName() +",线程中断,退出...");
					return;
				}
			}
	}
	
}
import java.util.concurrent.TimeUnit;

public class FileClickTest {

	public static void main(String[] args) {
		FileClick fileClick = new FileClick();
		Thread thread = new Thread(fileClick);
		thread.start();
		try {
			TimeUnit.SECONDS.sleep(3);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}	
		thread.interrupt();
	}
	
}

//console结果:
Thread-0-i=>0,当前时间:2017-09-05 10:10:52
Thread-0-i=>1,当前时间:2017-09-05 10:10:53
Thread-0-i=>2,当前时间:2017-09-05 10:10:54
Thread-0,线程中断,退出...

 

标签: 线程休眠 sleep
共有 人打赏支持
粉丝 5
博文 77
码字总数 56854
×
pan_1308
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: