文档章节

Java 多线程 - 线程 - 休眠与恢复

pan_1308
 pan_1308
发布于 2017/09/05 10:11
字数 350
阅读 28
收藏 0

#程序员薪资揭榜#你做程序员几年了?月薪多少?发量还在么?>>>

一、概述

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

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,线程中断,退出...

 

© 著作权归作者所有

pan_1308
粉丝 5
博文 95
码字总数 58819
作品 0
黄冈
私信 提问
加载中

评论(0)

20165237 2017-2018-2 《Java程序设计》第8周学习总结

20165237 2017-2018-2 《Java程序设计》第8周学习总结 教材学习内容总结 1、程序:一段静态的代码,它是应用软件执行的蓝本。 2、进程:程序的一次动态执行过程,它对应了从代码加载、执行至...

osc_x4wridbb
2018/04/21
2
0
20165223《Java程序设计》第八周Java学习总结

教材学习内容总结 第12章-JAVA多线程机制 要点 Java中的线程 Thread类与线程的创建 线程的常用方法 线程同步 协调同步的线程 线程联合 GUI线程 计时器线程 教材学习中的问题和解决过程 1. 进...

osc_wpln0ly9
2018/04/22
1
0
关于Java的多线程Runnable的个人理解(基础,不讲概念)

##背景说明: 在学了Java的多线程(继承Thread,Runnable)以后,我出于好奇,就想知道java到底是不是多线程的,不能它说自己是多线程就是多线程,自己想验证一下,于是我就想测试一下,但继承...

osc_y9wmeuxa
2019/08/09
1
0
20165205 2017-2018-2 《Java程序设计》第八周学习总结

20165205 2017-2018-2 《Java程序设计》第八周学习总结 教材学习内容总结 进程与线程 线程不是进程,但其行为很像进程,线程是比进程更小的执行单位。 与进程不同,线程的中断与恢复可以更加...

osc_x4wridbb
2018/04/22
2
0
20165234 《Java程序设计》第八周学习总结

第八周学习总结 教材内容学习 第十二章 Java 多线程机制 进程与线程 进程是程序的一次动态执行过程,对应了从代码加载、执行至执行完毕的一个完整过程。 线程不是进程,是比进程更小的执行单...

osc_wpln0ly9
2018/04/22
2
0

没有更多内容

加载失败,请刷新页面

加载更多

window下 mongodb开启用户名和密码 权限

在默认情况下,mongod是监听在127.0.0.1之上的,任何客户端都可以直接连接27017,且没有认证。 好处是,用户可以即时上手,不用担心被一堆配置弄的心烦意乱。 坏处是,公网服务器搭建MongoDB...

东东笔记
今天
9
0
数据倾斜

数据倾斜: 两种数据倾斜发生的现象: 80%情况下都发生挂了,只有极少20%情况下能把task执行完成 窄依赖:结构简单,如果发生数据丢失,方便查找丢失的数据 宽依赖:结构复杂,如何发生数据丢...

七宝1
今天
20
0
我的jdk源码(十一):ArrayList

一、概述 ArrayList类是AbstractList的子类,实现了具体的add(), set(), remove()等方法。它是一个可调整大小的数组可以用来存放各种形式的数据。 二、源码分析 (1) 类的声明,源码如下: ...

Java觉浅
昨天
24
0
vnc server,vnc server是什么,vnc工具推荐

nc server是一个用来共享linux服务器上资源给其他分布式用户的服务只要再一台linux系统的机器上安装vnc server,然后开启服务,其他机器就可以通过vncviewer访问这台机器上的共享资源,那么今...

兔子m
昨天
20
0
COLA的扩展性使用和源码研究

cola扩展点使用和设计初探 封装变化,可灵活应对程序的需求变化。 扩展点使用 步骤: 定义扩展点接口,类型可以是校验器,转换器,实体; 必须以ExtPt结尾,表示一个扩展点。 比如,我定义一个...

李福春carter
昨天
27
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部