Java捕获异常后线程情况
单线程
如果异常不是被线程本身捕获的话,线程肯定就终止了,会被GC回收。
如果异常被线程本身捕获处理了,那么将会继续执行线程下的逻辑操作,直接完毕后再被回收
多线程
在多线程外部使用一组try catch来捕获异常是不合理的,会导致异常退出。
原因是因为线程是并行运行的,在捕获到单个线程的异常时,try catch可能会起作用,但当其它并行线程也出现异常情况时,try catch就不再起作用了,导致程序异常退出.因此,在多线程运行情况下,不要指望单个外部的try catch能捕获的所有线程的异常并安全退出,而是需要在每个单独的线程内使用try catch来捕获每个线程的异常
try-catch的时候在默认情况下如:控制层--业务层处理中是不会调用守护线程的,java有一个默认的守护线程来调用GC回收已经执行完的程序,业务逻辑处理完之后出现错误抛出异常被控制层捕获停止工作,在一定默认时间后会被清理,一般在业务层处理curd异常是不需要使用try-catch的,虽然这样业务处理完成,但是线程并没有及时被清理从而影响性能。
建议在业务层直接抛出异常然后写个捕获类业务层统一进行处理,这样异常被捕获后线程虽然也没有被立即杀死,但是它响应到前端之后spring会对这个线程直接进行回收,这样对性能有很大的提升,而且统一定义错误回收对代码也有好处。
Java捕获异常后线程情况相关推荐
- java new一个线程执行完后会自动销毁吗_Java基础总结,超级全的面试题
1. static关键字是什么意思?Java 中是否可以覆盖(override)一个 private 或者是 static 的方法?是否可以在 static 环境中访问非static 变量? stat ...
- JAVA dump查看线程运行情况
JAVA dump查看线程运行情况: 查询java程序pid(两种方案,二选一) 1)直接输入项目名称回车(适用于可以通过如"tt"命令查看到部署的项目名称) 2)使用jps [- ...
- java中履约记录表的实现_工程建设项目标后履约情况记录表
工程建设项目标后履约情况记录表 工程建设项目标后履约情况记录表 建设单位名称(盖章) 工程项目名称 项目(标段)名称 开 工 日 期 施工许可证号 填 表 日 期 履约情况记录 内 容 主要管理人员是 ...
- 深入理解 Java 锁与线程阻塞
相信大家对线程锁和线程阻塞都很了解,无非就是 synchronized, wait/notify 等, 但是你有仔细想过 Java 虚拟机是如何实现锁和阻塞的呢?它们之间又有哪些联系呢?如果感兴趣的话 ...
- Thinging in Java读后总结
当调用一个对象中的方法时,比如调用Dog类的实例dog的eat(),编译器会把dog引用当成eat()的第一个参数传入即(eat(this, otherParams)) 在构造器中可以使用this关键 ...
- 面试官:Java如何绑定线程到指定CPU上执行?
不知道你是啥感觉,但是我第一次看到这个问题的时候,我是懵逼的. 而且它还是一个面试题. 我懵逼倒不是因为我不知道答案,而是恰好我之前在非常机缘巧合的情况下知道了答案. 我感觉非常的冷门,作为一个考察候 ...
- Java常用四大线程池用法以及ThreadPoolExecutor详解
2019独角兽企业重金招聘Python工程师标准>>> 为什么用线程池? 1.创建/销毁线程伴随着系统开销,过于频繁的创建/销毁线程,会很大程度上影响处-理效率 2.线程并发数量过多 ...
- 【Java 语言】Java 多线程 一 ( 线程基础 : 线程启动 | 线程停止 | 线程暂停 | 线程优先级 | 守护线程)
一. 线程启动 线程启动 : -- 1. 继承 Thread 运行线程 : 重写 Thread 类的 run 方法, 然后执行该线程; -- 2. 实现 Runnable 接口, 并运行线程; -- ...
- Java并发编程——线程池的使用
在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统 ...
最新文章
- JsonCpp的简单使用方法
- 使用Action,Data属性启动系统Activity
- synchronized,ReetrantLock与volatile(二)
- 单调栈 leetcode整理(一)
- LSI MegaCli 命令使用2
- 2PC AND 3PC
- 费诺编码的gui页面设计_GUI设计和UI设计有什么区别?
- Ubuntu文本编辑器
- c语言课程设计题目 吃豆子,C语言吃豆子游戏
- 论中国智慧城市的发展前景
- C++多线程 - 无锁编程
- 洛谷——P1375 小猫
- 更改计算机时间出现没有权限,win7系统修改时间时显示没有权限的解决方法
- 物联网的未来是什么样的
- 承认你的父母其实不那么爱你
- javaScript实现a页面触发b页面事件-小小笔记
- Unity UI Toolkit学习笔记-EditorWindow
- Android中绘制圆角矩形图片及任意形状图片
- DELL XPS 8930-R 从优盘安装centos7服务器
- 计算机英语这门课上后感1000,英语教师听课心得体会作文