学习笔记5: java中Thread类中的interrupt()(补充)
2015-10-16 00:00
603 查看
interrupt():
该方法经常用来“吵醒休眠的线程“。 当一些线程调用sleep() 方法处于休眠状态时,一个占有CPU资源的线程可以让休眠的线程调用interrupt()方法“吵醒”自己。即导致休眠的线程发火说呢过InterruptException异常,从而结束休眠,重新排队等待CPU资源。
附代码:
该方法经常用来“吵醒休眠的线程“。 当一些线程调用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(); // 吵醒学生 } } }
相关文章推荐
- JAVA apidoc 官方文档下载地址
- 图解用Java实现的https心跳程序
- Spring3中定时器的配置使用之Quartz
- Spring通过c3p0或者dbcp连接数据库获得DataSource配置
- JAVA中This指针的三种常用方法
- Java如何读取properties文件
- 一道笔试题
- JAVA static代码块,非static代码块,构造函数运行次序
- 深入研究java.lang.Class类
- Java Servlet完全教程
- Spring中数据库技术--获得DataSource
- Spring中数据库技术--获得DataSource
- java常用集合类
- 关于java socket 关闭的思考.
- Spring配置等
- Java集合框架的知识总结(1)
- 面向对象_引用类型_内存分析_垃圾回收JAVA028-033
- Ubuntu 安装eclipse
- Java的三大特性
- java核心技术之IO流(三)FileReader和FileWriter