文档章节

学习笔记5: java中Thread类中的interrupt()(补充)

牧羊人Berg
 牧羊人Berg
发布于 2015/10/16 18:11
字数 254
阅读 60
收藏 4
  1. interrupt():

    该方法经常用来“吵醒休眠的线程“。 当一些线程调用sleep() 方法处于休眠状态时,一个占有CPU资源的线程可以让休眠的线程调用interrupt()方法“吵醒”自己。即导致休眠的线程发火说呢过InterruptException异常,从而结束休眠,重新排队等待CPU资源。

    附代码:

  

public class TestDemo {
	/**
	 * @author 牧羊的伯格女皇
	 * @param args
	 * 2015-10-16
	 */
	public static void main(String[] args) {
		ClassRoom cr = new ClassRoom();
		cr.student.start();
		cr.teacher.start();
	}

}

public class ClassRoom implements Runnable {
	Thread student;
	Thread teacher;   // 教师里有 student和teacher两个线程
	ClassRoom(){
		student = new Thread(this);
		teacher = new Thread(this);
		student.setName("牧羊的伯格女皇");
		teacher.setName("某某某教授");
	}
	public void run(){
		if(Thread.currentThread() == student ){
			try{
				System.out.println(student.getName() + " 正在睡觉,没有听课。");
				Thread.sleep(1000*60*60);  // 学生打算休眠一小时 
			}catch(InterruptedException e){
				System.out.println(student.getName() + " 被教授给叫醒了... ");
			}
			System.out.println(student.getName() + " 开始认真听课。 ");
		}else if( Thread.currentThread() == teacher ){
			for( int i=1;i<=3; i++){
				System.out.println("上课  " + i);
				try{
					Thread.sleep(500);
				}catch(InterruptedException e){
				}
			}
			student.interrupt();   // 吵醒学生
		}
	}
}




© 著作权归作者所有

共有 人打赏支持
牧羊人Berg
粉丝 24
博文 96
码字总数 87512
作品 0
深圳
私信 提问
Java多线程系列--“基础篇”01之 基本概念

多线程是Java中不可避免的一个重要主体。从本章开始,我们将展开对多线程的学习。接下来的内容,是对“JDK中新增JUC包”之前的Java多线程内容的讲解,涉及到的内容包括,Object类中的wait(),...

乔三爷
2015/05/09
0
0
Java Thread及其synchronized,wait,sleep,join,yeid,interrupt

Java SE7 API - Thread: http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html#yield%28%29 参考资料:http://blog.csdn.net/lqqmisslll/article/details/54208491 一、线程的简......

YuanyuanL
2015/08/12
0
0
读书笔记之《Java并发编程的艺术》-并发编程基础

读书笔记部分内容来源书出版书,版权归本书作者,如有错误,请指正。 欢迎star、fork,读书笔记系列会同步更新 git https://github.com/xuminwlt/j360-jdk module j360-jdk-thread/me.j360....

Hi徐敏
2015/11/11
0
8
Java 多线程学习(2)——停止线程

版权声明:本文为博主原创文章,未经博主允许不得转载。博客地址:http://blog.csdn.net/huqigang,内容如有错误,欢迎留言指出,谢谢! https://blog.csdn.net/huqigang/article/details/7...

胡了了
03/07
0
0
JAVA基础再回首(二十四)——多线程的概述、实现方式、线程控制、生命周期、多线程程序练习、安全问题的解决

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m366917/article/details/52711906 JAVA基础再回首(二十四)——多线程的概述、实现方式、线程控制、生命周期...

Aduroidpc
2016/09/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

docker快速搭建几个常用的第三方服务

本次和大家分享的内容是使用docker快速搭建工作中常用的第三方的服务,对于有一些互联网背景的公司来说,以下几个服务都是很需要的:redis,rabbit,elasticsearch; 如果想学习Java工程化、...

编程SHA
21分钟前
2
0
我的Linux系统九阴真经

在今天,互联网的迅猛发展,科技技术也日新月异,各种编程技术也如雨后春笋一样,冒出尖来了。各种创业公司也百花齐放百家争鸣,特别是针对服务行业,新型互联网服务行业,共享经济等概念的公...

linuxprobe16
29分钟前
5
0
Dubbo标签解析详解

在Spring继承dubbo时,会使用dubbo自定义的标签来定义相关的属性,常见的标签有<dubbo:application/>,<dubbo:registry/>,<dubbo:service/>等。对于这些标签的解析,dubbo都是使用的统一的方...

爱宝贝丶
34分钟前
3
0
网站彩蛋

图形类彩蛋 知乎 https://www.zhihu.com/ 想来知乎工作?请发送邮件到 jobs@zhihu.com 天猫 https://www.tmall.com/ 喵~ 加入我们吧 http://tb.cn/iS8NBOy 超级课程表 http://www.super.cn/...

临江仙卜算子
42分钟前
9
0
ThreadLocal父子线程之间的数据传递问题

一、问题的提出 在系统开发过程中常使用ThreadLocal进行传递日志的RequestId,由此来获取整条请求链路。然而当线程中开启了其他的线程,此时ThreadLocal里面的数据将会出现无法获取/读取错乱...

nonnetta
51分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部