博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
子线程异常抛出 及 主线程事务回滚
阅读量:4082 次
发布时间:2019-05-25

本文共 491 字,大约阅读时间需要 1 分钟。

http://blog.csdn.net/mynameismt/article/details/51363120

多线程与事务回滚

业务模型期望的结果是这样的,检测子线程的异常情况,如果发生异常,主线程回滚,否则提交

大家都知道runnable有以下特点:

          1.业务处理出现checked exception必须在线程中捕获处理不允许抛出,否则影响run函数的覆盖

          2.如果线程抛出unchecked(runnable) exception,则线程终结,主线程不受影响

所以使用runnable,主线程压根不知道子线程的情况,事务更无从谈起。

所以使用Callable机制

两种方法

1 使用异常

FutureTask   

public V get() throws InterruptedException, ExecutionException

主线程    调用  get   直接抛出异常触发事务管理

2 使用返回

  1. if ("failed".equals(result)) {  
  2.     throw new RuntimeException();  
  3. }  
收到failed返回后,抛出异常触发事务管理
你可能感兴趣的文章
phpquery抓取网站内容简单介绍
查看>>
找工作准备的方向(4月22日写的)
查看>>
关于fwrite写入文件后打开查看是乱码的问题
查看>>
用结构体指针前必须要用malloc,不然会出现段错误
查看>>
Linux系统中的美
查看>>
一些实战项目(linux应用层编程,多线程编程,网络编程)
查看>>
我觉得专注于去学东西就好了,与世无争。
查看>>
原来k8s docker是用go语言写的,和现在所讲的go是一个东西!
查看>>
STM32CubeMX 真的不要太好用
查看>>
STM32CubeMX介绍、下载与安装
查看>>
电机和桨叶要搭配选择
查看>>
不要买铝合金机架的无人机,不耐摔,易变形弯曲。
查看>>
ACfly也是基于FreeRTOS的
查看>>
F330装GPS的位置
查看>>
我想先用三个或者五个激光测距做无人机的室内定位和避障
查看>>
pixhawk也可以用Airsim仿真
查看>>
《无人机电机与电调技术》可以看看
查看>>
我发现七月在线的GAAS课程基本都讲到了
查看>>
电机堵转
查看>>
一个真正好的无人机应该是需要自己慢慢去调参的,别人的默认参数是可以飞但是可能达不到perfect的效果。
查看>>