java中的强行终止线程的执行
不合理
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中的强行终止线程的执行相关推荐
- JDK中的Timer和TimerTask详解 目录结构: Timer和TimerTask 一个Timer调度的例子 如何终止Timer线程 关于cancle方式终止线程 反复执行一个任务 sche
JDK中的Timer和TimerTask详解 目录结构: Timer和TimerTask 一个Timer调度的例子 如何终止Timer线程 关于cancle方式终止线程 反复执行一个任务 schedu ...
- Java中的进程与线程
2019独角兽企业重金招聘Python工程师标准>>> Java中的进程与线程 概念 进程与线程,本质意义上说, 是操作系统的调度单位,可以看成是一种操作系统 "资源&qu ...
- JAVA中如何确保N个线程可以访问N个资源,但同时又不导致死锁?
● JAVA中如何确保N个线程可以访问N个资源,但同时又不导致死锁? 考察点:死锁 参考回答: 使用多线程的时候,一种非常简单的避免死锁的方式就是:指定获取锁的顺序,并强制线程按照指定的顺序获取锁.因 ...
- JAVA 中无锁的线程安全整数 AtomicInteger介绍和使用
转载自 http://blog.csdn.net/bigtree_3721/article/details/51296064 JAVA 中无锁的线程安全整数 AtomicInteger,一个提供原子操 ...
- java 主线程与子线程的执行顺序
记录一个面试问题,多线程中需要等子线程全部执行完成后再执行主线程 网上的方式 1.sleep()方式,这种做法不靠谱,不知道cpu到底哪个线程会拿到,不能使用 2.将子线程加入集合中(最好是线程安全的 ...
- 如何用java打印1-100_在java中使用10个线程打印1到100
我是多线程的新手,我得到了一个问题,使用 Java中的10个线程以低于约束打印1到100. >线程t1应打印: 1, 11, 21, 31, - 91 t2应打印: 2, 12, 22, 32, ...
- 详解java中Thread类,线程和进程的基本区别,多线程的好处,线程的五个生命周期,主线程和IDEA创建的Monitor Ctrl-Break守护线程;优雅地终止线程。死锁的产生
线程:CPU调度的最小单位:线程共享堆内存和方法区,但各自享有栈空间.进程:CPU分配资源的最小单位. 为什么需要多线程:①避免其中一个模块阻塞造成系统假死:②程序异步处理(交替执行),提高程序执行效 ...
- java线程怎么重启_如何在Java中启动/停止/重启线程?
10 个答案: 答案 0 :(得分:41) 一旦线程停止,您就无法重新启动它.但是,没有什么可以阻止您创建和启动新线程. 选项1:创建一个新线程,而不是尝试重新启动. 选项2:而不是让线程停止,让它等 ...
- Java中关于进程和线程的理解
进程:进程是操作系统的基础结构,是一次程序的执行,是一个程序及其数据在处理机上顺序执行所发生的的活动,是程序在数据集合上运行的过程,它是操作系统进行资源调度和分配的一个 独 立 ...
最新文章
- eureka多台注册中心_微服务实战系列(五)-注册中心Eureka与nacos区别
- 改变linux分区后grub修复,更改磁盘分区后修复GRUB启动
- oracle初始安装大小
- ITK:注册IO工厂RegisterIOFactories
- 【计算机系统设计】学习笔记(1)03,04
- 要是不会用数据,算什么IT产品经理?
- Qt:Qt使用WM_COPYDATA消息进行进程通信
- mysql 存儲過程調用_mysql-VS2010+MYSQL 存儲過程調用出錯
- guid主分区表损坏_固态硬盘用mbr还是guid
- Forrester报告拆解:强劲冲击第一梯队后,京东智联云站稳云市场新格局
- 一步步构造自己的vue2.0+webpack环境
- 一分钟了解微服务的好处和陷阱
- BP神经网络简单应用实例,bp神经网络的应用案例
- echarts考勤图表
- STM32数据手册中的ADC12、ADC123
- MFC界面设计——AUDK
- 雷神3开方算法解析,游戏运行速度提高四倍。
- redisson 主从模式Unsupported protocol version 50_强推七本欢喜冤家甜文,男女主从互怼到互宠,超甜超撩超过瘾!...
- 【音频处理】python将两个单声道wav音频合成一个双声道wav音频_立体声感
- 前端性能优化之优化图片
热门文章
- 安卓8.X解包打包工具和教程,windows平台一键打包解包工具
- 超级产品:解秘国潮对服装类企业的柔性供应链改造
- 安装dlib遇到的错误AttributeError: module 'dlib' has no attribute 'get_frontal_face_detecetor'
- 计算机毕业设计基于asp.net校园二手物品交易平台
- Java创建二维三维数组的几种方式
- 160个CrackMe之108 mfc程序 寻找按钮事件,代码还原(上)
- 怎样复制粘贴windows命令行中的内容 .
- 解决告警“warning #1295-D Deprecated declaration xxxxxxx - give arg types”方法
- 央视3·15晚会起底直播乱象 直播平台佣金高达50%
- 写给创业者:如何打造让用户离不开的App