一、 新建一个集成Thread的子类Example
(1). 自定义循环出口,letOver(),isOvered();
(2). 第一个循环是自定义循环出口,每次沉睡100ms,输出一句话;
(3). 第二个循环式内部方法interrupt的中断出口,每次沉睡100ms,输出一句话;
二、 创建测试类
(1). 创建子线程Example对象
(2). 子线程Example对象开始运行
(3). 主线程沉睡1000ms 等待子线程(子线程可打印10次)
(4). 自定义中断方法中断子线程的第一个循环
(5). 主线程沉睡1000ms 等待子线程(子线程可打印10次)
(6). 系统方法interrupt方法中断子线程的第二个循环
但是,当线程最后次沉睡,被捕捉异常后,会将线程重新设置为非中断状态,从而报错后一直循环,不能中断,
此时换种沉睡方式
long time = System.currentTimeMillis();
while(System.currentTimeMillis() - time < 100){}
就可以解决了。
代码如下:
public class Example extends Thread {
// 自定义循环出口
private boolean isOver = false;
public void letOver() {
isOver = true;
}
public boolean