文档章节

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

牧羊人Berg
 牧羊人Berg
发布于 2015/10/16 18:11
字数 254
阅读 58
收藏 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
粉丝 23
博文 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试图提供过抢占式限制中断,但问题多多,例如已被废弃的Thread.stop、Thread.suspend和 Thread.resume等。另一方面,出于Java应用代码的健壮性的考虑,降低了编程门槛,减少不清楚底层机...

刘学炜
2012/07/03
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多线程之interrupt()的深度研究

原文地址:http://www.cnblogs.com/carmanloneliness/p/3516405.html 近期学习Java多线程的中断机制,网上的帖子说得很浅,并没深究其原理。看了Java源码,对Java的中断机制有了略深入的理解...

恶魔在江湖
2014/02/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

基于TP5的微信的公众号获取登录用户信息

之前讲过微信的公众号自动登录的菜单配置,这次记录一下在TP5项目中获取自动登录的用户信息并存到数据库的操作 基本的流程为:微信设置自动登录的菜单—>访问的URL指定的函数里获取用户信息—...

月夜中徘徊
59分钟前
0
0
youTrack

package jetbrains.teamsys.license.runtime; 计算lis package jetbrains.ring.license.reader; 验证lis 安装后先不要生成lis,要把相关文件进行替换 ring-license-checker-1.0.41.jar char......

max佩恩
今天
0
0
12.17 Nginx负载均衡

Nginx负载均衡 下面的dig看到可以返回2个IP,就是解析出来的IP,这样我们可以做负载均衡。 dig www.qq.com 1.vim /usr/local/nginx/conf/vhost/fuzai.conf 2.添加如下配置 upstream qq //定义...

芬野de博客
今天
0
0
SSE(Server Send Event 服务端发送事件)

package com.example.demo.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframe......

Canaan_
今天
0
0
jvm调优

1.jvm运行模式 client模式:启动快,占用内存少,jit编译器生成代码的速度也更快. server模式:主要优势在于代码优化功能,这个功能对于服务器应用而言尤其重要. tiered server模式:结合了client与...

Funcy1122
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部