多线程编程<五>
1 /**
2 * 中断线程:当线程由于调用sleep(),join(),wait()而暂停时,如果中断它,则会收到一个InterruptedException异常。
3 * 调用Thread.isInterrupted(),Thread.interrupted()判断中断,Thread.interrupted()会重新设置线程的中断状态。
4 */
5 public class InterruptDemo {
6 public static void main(String[] args) {
7 MyThread mt = new MyThread();
8 MyThread mt2 = new MyThread();
9 Thread thrd = new Thread(mt, "MyThread #1");
10 Thread thrd2 = new Thread(mt2, "MyThread #2");
11 try {
12 thrd.start();
13 Thread.sleep(1000);
14 thrd.interrupt();
15
16 thrd2.start();
17 System.out.println();
18 Thread.sleep(4000);
19 thrd2.interrupt();
20 } catch (InterruptedException e) {
21 System.out.println("Main thread Interrupted");
22 }
23 }
24 }
25 class MyThread implements Runnable {
26
27 @Override
28 public void run() {
29 String thrdName = Thread.currentThread().getName();
30 System.out.println(thrdName + " starting.");
31
32 try {
33 Thread.sleep(3000);
34 for(int i= 0;i<1000;i++) {
35 if(Thread.interrupted()) {//判断线程是否是中断
36 System.out.println("Thread interrupted while active.");
37 break;
38 }
39 System.out.print(".");
40 for(long x=0;x<1000000;x++) ;
41 }
42 } catch (InterruptedException e) {
43 System.out.println(thrdName + " interrupted.");
44 }
45 System.out.println(thrdName + " exiting.");
46 }
47
48 }
多线程编程<五>的更多相关文章
- [置顶]
曙光到来,我的新书《Android进阶之光》已出版
独立博客版本请点击这里 由来 2016年我开始建立了自己的知识体系,所有的文章都是围绕着这个体系来写,随着这个体系的慢慢成长,开始有很多出版社联系我写书,因为比较看好电子工业出版社,就顺理成章的开始了 ...
- 《Android进阶之光》--注解与依赖注入框架
No1: 标准注解: 1)@Override:覆写 2)@Deprecated:过时 3)@SuppressWarnings:取消警告 4)@SafeVarargs:申明使用了可变长度参数的方法 No ...
- 《Android进阶之光》--Material Design
接上篇<Android进阶之光>--Android新特性 No1: 组件: 1)底部工作条-Bottom Sheets 2)卡片-Cards 3)提示框-Dialogs 4)菜单-Menu ...
- Android中的多线程编程(一)附源代码
Android中多线程编程:Handler类.Runnable类.Thread类之概念分析 1.Handler类: Handler是谷歌封装的一种机制:能够用来更新UI以及消息的发送和处理.Handl ...
- 《Android进阶之光》--多线程编程
No1: 实现多线程的3中方法 1)继承Thread,重写run()方法 2)实现Runnable接口,并实现该接口的run()方法 3)实现Callable接口,重写call()方法 public ...
- 《Android进阶之光》--网络编程与网络框架
No1: Volley源码分析: Volley.newRequestQueue-> RequestQueue.start()-> CacheDispatcher.start()->C ...
- Android进阶(九)APP编程感想
从初识Android到现在,在不断做APP(二维码.条形码扫描,彩票购买,火车票余票查询)的过程中,自己学会了很多东西.找时间整理了一下,总结如下: 其中,对于前两个APP,自己都是在他人已完成的基础 ...
- Android中的多线程编程
问题 Android的UI也是线程不安全的,如果要更新应用程序里的UI元素,必须在主线程中进行,否则就会抛异常.比如用一个Button的onClick函数去更新界面上的元素,就会得到一个CalledF ...
- 《Android进阶之光》--Android新特性
Android 5.0新特性 1)全新的Material Design设计风格 2)支持多种设备 3)全新的通知中心设计--按照优先级显示 4)支持64位ART虚拟机 5)多任务视窗Overview ...
- Android进阶之光-第1章-Android新特性-读书笔记
第 1 章 Android 新特性 1.1 Android 5.0 新特性 1.1.1 Android 5.0 主要新特性 1. 全新的 Material Design 新风格 Material De ...
随机推荐
- 答读者问(1):非模式物种找marker;如何根据marker定义细胞类型
下午花了两个小时回答读者的疑问,觉得可以记录下来,也许能帮到一部分人. 第一位读者做的是非模式物种的单细胞. 一开始以为是想问我非模式物种的marker基因在哪儿找,读者朋友也提到了blast 研究的 ...
- 使用vlookup的模糊匹配和字符串拼接
1,=IF(ISNA(VLOOKUP("*"&$D2&"*",$A$2:$A$43,1,FALSE))=FALSE,TRUE,FALSE) 2, ...
- python 之爬虫基本流程
python 之爬虫基本流程 一 用户获取网络数据的方式: 方式1:浏览器提交请求--->下载网页代码--->解析成页面 方式2:模拟浏览器发送请求(获取网页代码)->提取有用的数据 ...
- r正则表达式
/t 制表符. /n 新行. . 匹配任意字符. | 匹配表达式左边和右边的字符. 例如, "ab|bc" 匹配 "ab" 或者 "bc". ...
- 从零开始了解kubernetes
kubernetes 已经成为容器编排领域的王者,它是基于容器的集群编排引擎,具备扩展集群.滚动升级回滚.弹性伸缩.自动治愈.服务发现等多种特性能力. 本文将带着大家快速了解 kubernetes , ...
- Redis挂了,流量把数据库也打挂了,怎么办?
你好呀,我是歪歪. 是这样的,前几天有个读者给我发消息,说面试的时候遇到一个场景题: 他说他当时,一时间竟然找不到回答问题的角度,感觉自己没有回答到点子上. 我仔细想了一下,确实是感到这个问题有一丝丝 ...
- SortCompare.time的反射版本
"Algorithms" by Robert Sedgewick, p256, SortCompare.time(): public static double time(Stri ...
- 深入理解SPI机制
一.什么是SPI SPI ,全称为 Service Provider Interface,是一种服务发现机制.它通过在ClassPath路径下的META-INF/services文件夹查找文件,自动加 ...
- 机器学习:正态方程 python实现
目录 前言 一.算法介绍 二.核心算法 1. 公式 2.python实现 总结 前言 使用python简单实现机器学习中正态方程算法. 一.算法介绍 与梯度下降算法相比,正态方程同样用于解决最小化代价 ...
- Lab: 2FA bypass using a brute-force attack:暴力破解双重验证靶场复盘(困难级别)
靶场内容: This lab's two-factor authentication is vulnerable to brute-forcing. You have already obtained ...