该方法只是给线程设置了一个停止的标记 并不是真正的立即停止线程

  interrupted() 测试当前线程是否已经中断
  isInterrupted() 测试线程是否已经中断
  停止线程的方法:

.异常法 (相当于return出去)
package entity.thread; public class Mythread extends Thread{ @Override
public void run() {
super.run();
try {
for(int i=;i<;i++){
if(this.interrupted()){
System.out.println("是停止状态了。。。");
throw new InterruptedException();
}
System.out.println("i=" + (i+));
}
System.out.println("我在for下面");
} catch (InterruptedException e) {
System.out.println("进入异常方法了线程终止");
e.printStackTrace();
}
} public static void main(String[] args) throws InterruptedException {
try {
Mythread mh = new Mythread();
mh.start();
mh.sleep();
mh.interrupt();
} catch (Exception e) {
System.out.println("main catch");
e.printStackTrace();
}
System.out.println("end"); }
} 打印结果:
i=
i=
end
是停止状态了。。。
进入异常方法了线程终止
java.lang.InterruptedException
at entity.thread.Mythread.run(Mythread.java:) .在沉睡中被停止 (程序会直接抛异常)
package entity.thread; public class Mythread2 extends Thread{ @Override
public void run() {
super.run();
try {
System.out.println("run begin");
Thread.sleep();
System.out.println("run end");
} catch (InterruptedException e) {
System.out.println("在沉睡中被终止! 进入catch!"+ this.isInterrupted());
e.printStackTrace();
}
}
public static void main(String[] args) {
try {
Mythread2 mythread2 = new Mythread2();
mythread2.start();
mythread2.sleep();
mythread2.interrupt();
} catch (InterruptedException e) {
System.out.println("main catch");
e.printStackTrace();
}
System.out.println("end");
}
}
执行结果
run begin
end
在沉睡中被终止! 进入catch!false
java.lang.InterruptedException: sleep interrupted
at java.lang.Thread.sleep(Native Method)
at entity.thread.Mythread2.run(Mythread2.java:)

3.暴力停止 stop 方法 已经过时不建议使用并且会存在问题

最新文章

  1. MVVM模式和在WPF中的实现(二)数据绑定
  2. SpringMVC中使用Interceptor拦截器
  3. 阿里 otter搭建过程整理
  4. iOS面试题汇总
  5. 推荐12款实用的 JavaScript 书页翻转效果插件
  6. js返回上一步
  7. AMQ学习笔记 - 05. 客户端模板化
  8. 【转】parallels desktop 11 授权许可文件删除方法
  9. bzoj1863
  10. FineUI表单验证
  11. html5部分相关
  12. 国内互联网公司github网址
  13. qt中进程的使用
  14. linux中sed命令批量修改
  15. JavaScript碎片—函数闭包(模拟面向对象)
  16. 实验楼----PHP大法
  17. PHP错误代号列表
  18. table滑块
  19. nginx 耗时原因定位总结
  20. rem、em 、font-size随着屏幕大小的改变而改变

热门文章

  1. 安装eclipse步骤以及配置jdk
  2. 常用的tensorflow函数
  3. 量化交易alpha、beta、shape等基本概念梳理
  4. MyBatis+SpringMVC 框架搭建小结
  5. Linux-线程同步之互斥锁
  6. Idea 我的快捷键
  7. 解决ubuntu16.04 ‘E: 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用) ’ 问题
  8. 备战秋招——C++知识点
  9. python编程:从入门到实践----第五章:if语句&gt;练习
  10. Java之线程通信的应用:经典例题:生产者/消费者问题