不合理

package com.bjpowernode.java.thread;
/*
在java中怎么强行终止一个线程的执行。这种方式存在很大的缺点:容易丢失数据。因为这种方式是直接将线程杀死了,线程没有保存的数据将会丢失。不建议使用。*/
public class ThreadTest09 {public static void main(String[] args) {Thread t = new Thread(new MyRunnable3());t.setName("t");t.start();// 模拟5秒try {Thread.sleep(1000 * 5);} catch (InterruptedException e) {e.printStackTrace();}// 5秒之后强行终止t线程t.stop(); // 已过时(不建议使用。)}
}class MyRunnable3 implements Runnable {@Overridepublic void run() {for(int i = 0; i < 10; i++){System.out.println(Thread.currentThread().getName() + "--->" + i);try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}}}
}

合理方法

package com.bjpowernode.java.thread;
/*
怎么合理的终止一个线程的执行。这种方式是很常用的。*/
public class ThreadTest10 {public static void main(String[] args) {MyRunable4 r = new MyRunable4();Thread t = new Thread(r);t.setName("t");t.start();// 模拟5秒try {Thread.sleep(5000);} catch (InterruptedException e) {e.printStackTrace();}// 终止线程// 你想要什么时候终止t的执行,那么你把标记修改为false,就结束了。r.run = false;}
}class MyRunable4 implements Runnable {// 打一个布尔标记boolean run = true;@Overridepublic void run() {for (int i = 0; i < 10; i++){if(run){System.out.println(Thread.currentThread().getName() + "--->" + i);try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}}else{// return就结束了,你在结束之前还有什么没保存的。// 在这里可以保存呀。//save....//终止当前线程return;}}}
}

java中的强行终止线程的执行相关推荐

  1. JDK中的Timer和TimerTask详解 目录结构: Timer和TimerTask 一个Timer调度的例子 如何终止Timer线程 关于cancle方式终止线程 反复执行一个任务 sche

    JDK中的Timer和TimerTask详解 目录结构: Timer和TimerTask 一个Timer调度的例子 如何终止Timer线程 关于cancle方式终止线程 反复执行一个任务 schedu ...

  2. Java中的进程与线程

    2019独角兽企业重金招聘Python工程师标准>>> Java中的进程与线程 概念 进程与线程,本质意义上说, 是操作系统的调度单位,可以看成是一种操作系统 "资源&qu ...

  3. JAVA中如何确保N个线程可以访问N个资源,但同时又不导致死锁?

    ● JAVA中如何确保N个线程可以访问N个资源,但同时又不导致死锁? 考察点:死锁 参考回答: 使用多线程的时候,一种非常简单的避免死锁的方式就是:指定获取锁的顺序,并强制线程按照指定的顺序获取锁.因 ...

  4. JAVA 中无锁的线程安全整数 AtomicInteger介绍和使用

    转载自 http://blog.csdn.net/bigtree_3721/article/details/51296064 JAVA 中无锁的线程安全整数 AtomicInteger,一个提供原子操 ...

  5. java 主线程与子线程的执行顺序

    记录一个面试问题,多线程中需要等子线程全部执行完成后再执行主线程 网上的方式 1.sleep()方式,这种做法不靠谱,不知道cpu到底哪个线程会拿到,不能使用 2.将子线程加入集合中(最好是线程安全的 ...

  6. 如何用java打印1-100_在java中使用10个线程打印1到100

    我是多线程的新手,我得到了一个问题,使用 Java中的10个线程以低于约束打印1到100. >线程t1应打印: 1, 11, 21, 31, - 91 t2应打印: 2, 12, 22, 32, ...

  7. 详解java中Thread类,线程和进程的基本区别,多线程的好处,线程的五个生命周期,主线程和IDEA创建的Monitor Ctrl-Break守护线程;优雅地终止线程。死锁的产生

    线程:CPU调度的最小单位:线程共享堆内存和方法区,但各自享有栈空间.进程:CPU分配资源的最小单位. 为什么需要多线程:①避免其中一个模块阻塞造成系统假死:②程序异步处理(交替执行),提高程序执行效 ...

  8. java线程怎么重启_如何在Java中启动/停止/重启线程?

    10 个答案: 答案 0 :(得分:41) 一旦线程停止,您就无法重新启动它.但是,没有什么可以阻止您创建和启动新线程. 选项1:创建一个新线程,而不是尝试重新启动. 选项2:而不是让线程停止,让它等 ...

  9. Java中关于进程和线程的理解

    进程:进程是操作系统的基础结构,是一次程序的执行,是一个程序及其数据在处理机上顺序执行所发生的的活动,是程序在数据集合上运行的过程,它是操作系统进行资源调度和分配的一个  独            立 ...

最新文章

  1. eureka多台注册中心_微服务实战系列(五)-注册中心Eureka与nacos区别
  2. 改变linux分区后grub修复,更改磁盘分区后修复GRUB启动
  3. oracle初始安装大小
  4. ITK:注册IO工厂RegisterIOFactories
  5. 【计算机系统设计】学习笔记(1)03,04
  6. 要是不会用数据,算什么IT产品经理?
  7. Qt:Qt使用WM_COPYDATA消息进行进程通信
  8. mysql 存儲過程調用_mysql-VS2010+MYSQL 存儲過程調用出錯
  9. guid主分区表损坏_固态硬盘用mbr还是guid
  10. Forrester报告拆解:强劲冲击第一梯队后,京东智联云站稳云市场新格局
  11. 一步步构造自己的vue2.0+webpack环境
  12. 一分钟了解微服务的好处和陷阱
  13. BP神经网络简单应用实例,bp神经网络的应用案例
  14. echarts考勤图表
  15. STM32数据手册中的ADC12、ADC123
  16. MFC界面设计——AUDK
  17. 雷神3开方算法解析,游戏运行速度提高四倍。
  18. redisson 主从模式Unsupported protocol version 50_强推七本欢喜冤家甜文,男女主从互怼到互宠,超甜超撩超过瘾!...
  19. 【音频处理】python将两个单声道wav音频合成一个双声道wav音频_立体声感
  20. 前端性能优化之优化图片

热门文章

  1. 安卓8.X解包打包工具和教程,windows平台一键打包解包工具
  2. 超级产品:解秘国潮对服装类企业的柔性供应链改造
  3. 安装dlib遇到的错误AttributeError: module 'dlib' has no attribute 'get_frontal_face_detecetor'
  4. 计算机毕业设计基于asp.net校园二手物品交易平台
  5. Java创建二维三维数组的几种方式
  6. 160个CrackMe之108 mfc程序 寻找按钮事件,代码还原(上)
  7. 怎样复制粘贴windows命令行中的内容 .
  8. 解决告警“warning #1295-D Deprecated declaration xxxxxxx - give arg types”方法
  9. 央视3·15晚会起底直播乱象 直播平台佣金高达50%
  10. 写给创业者:如何打造让用户离不开的App