文档章节

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

berg-dm
 berg-dm
发布于 2015/10/16 18:11
字数 254
阅读 80
收藏 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-dm
粉丝 28
博文 98
码字总数 88970
作品 0
深圳
程序员
私信 提问
加载中

评论(0)

java高并发编程--01--认识线程与Thread,ThreadGroup

1.线程简介 线程: 操作系统有多任务在执行,对计算机来说每一个任务就是一个进程(Process),每一个进程内部至少有一个线程(Thread)在运行。线程是程序执行的一个路径,每一个线程都有自...

osc_ap8rqrw7
2019/08/16
1
0
20165237 2017-2018-2 《Java程序设计》第8周学习总结

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

osc_x4wridbb
2018/04/21
2
0
20165231 2017-2018-2 《Java程序设计》第8周学习总结

教材学习内容总结 进程与线程 程序是一段静态的代码,它是应用软件执行的蓝本。 进程是程序的一次动态执行过程,它对应了从代码加载、执行至执行完毕的一个完整过程,这个过程也是进程本身从...

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

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

osc_wpln0ly9
2018/04/22
1
0
Java多线程基础--01之 基本概念

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

zxca368
2017/08/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

centos7.4解压方式安装mysql5.7

删除Mysql yum remove mysql mysql-server mysql-libs mysql-server; find / -name mysql #将找到的相关东西删掉;例如:rm -rf /var/lib/mysql rpm -qa|grep mysql #(查询出来的东东yum rem......

中颀013
21分钟前
21
0
如何在电脑屏幕上录制视频?安利一款屏幕录像软件

如何在电脑屏幕上录制视频?相信很多小伙伴都会有这个需求,毕竟如今网上有很多教学视频或者游戏直播视频等,它们在市场上有产出所以必定会有大量需求,所以,如果伙伴们也想通过对电脑视频进...

斯卡哈
21分钟前
16
0
SQL笔试 I 经典44题及答案解析

01 建表语句 create table Student(sid varchar(10),sname varchar(10),sage datetime,ssex nvarchar(10));insert into Student values('01' , '赵雷' , '1990-01-01' , '男');insert into......

osc_s4e6jr85
21分钟前
14
0
csharp WebUploader 分块上传

HTML部分 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.aspx.cs" Inherits="up6.index" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://......

osc_afifi2qt
23分钟前
13
0
通信原理的新认识-从实践到原理

在读书期间,本人是学习的通信专业,曾反复研读樊昌信老师写的《通信原理》这本书,一直停留在表面且没有新的理解,直到毕业之后从事通信相关的工作,才在实践层面对通信有了新认识。现就将新...

osc_2mvp7jnu
24分钟前
19
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部