2 malie1981 malie1981 于 2017.01.12 13:52 提问

新开一个线程事务怎么控制?

在run方法里没法用@Transactional来做事务,run方法上又不能加exception,怎么能控制事务保证异常就回滚呢?

1个回答

dabocaiqq
dabocaiqq   2017.01.14 22:47
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
事务与多线程和同步之间的关系
事务为保证一个操作的原子性而设置的,一个事务必定包含多个操作,多个操作再逻辑上要保证完整一致,如果中间只要有一个操作失败,那么事务必须回滚,必须回到整个操作的初始状态 多线程为了提高应用的执行效率而设置的,多个线程可以做同样的事情或不同的事情,单个线程只能处理1个客户请求,那么多线程就可以同时处理多个请求。每一个线程处理的业务涉及到多个操作,如果有一致性的要求,那么必须介入事务 同步是
WinForm中新开一个线程操作窗体上的控件(跨线程操作控件)GOOD
最近在做一个winform的小软件(抢票的...)。登录窗体要从远程web页面获取一些数据,为了不阻塞登录窗体的显示,开了一个线程去加载数据远程的数据,会报一个错误"线程间操作无效: 从不是创建控件“lbl_loading_msg”的线程访问它。"百度一下,原来从.net framework 2.0开始,为了安全,不允许跨线程操作控件。解决办法如下: 1、声明一个拥有委托类型的方法,作为代理 操
spring 多线程事务的问题
因为线程不属于spring托管,故线程不能够默认使用spring的事务,也不能获取spring注入的bean 在被spring声明式事务管理的方法内开启多线程,多线程内的方法不被事务控制。   如下代码,线程内调用insert方法,spring不会把insert方法加入事务 就算在insert方法上加入@Transactional注解,也不起作用。 J
多线程异常 和 事务(一)
1,首先提出几个问题: 1.1,子线程中的异常在主线程中是否可以catch 1.2,在spring中主线程有事务,那么子线程中有事务码 2,先看第一个问题 2.1,我们在main方法里面测试,代码如下 package com.pingan.test.call; import java.util.ArrayList; import java.util.List; import java.
开启一个线程,在线程中来控制Progress的进度
在对话框的一个成员函数里开启一个线程,在线程中来控制Progress的进度CMyDlg::StartProgress(){m_bRunProgress = TRUE;m_ProgressBar.SetRange(...);//统计文件的大小来设置进度的显示范围AfxBeginThread(Progress,(LPVOID*)this,THREAD_PRIORITY_NORMAL);}CMyDlg:
spring service新开线程导致获取新数据失败问题
  之前写了个方法,在service层提交数据之后,同步推送至仓库,由于推送可能耗时比较久,故采用异步推送,经测试没有问题。但是某一次操作的时候,报错了,报数据状态非待推送  因为业务原因,会在推送该数据的时候判断是否为待推送状态,我会在数据提交之后更改状态为待推送状态。service.updateStatus("待推送")然后会在推送线程中,推送方法会判断该条数据是否为待推送状态,该数据会根据I...
Spring事务与自定义多线程陷阱
Spring事务与自定义多线程陷阱
Java在实现方法中新开一个线程
写在前面 昨日,组长让我在一个实现方法中调用一下他的接口,并且为了不影响方法的效率,要新开一个线程。作为没在项目中用过线程的菜鸟,心里一慌,好在最终也是顺利的解决了。代码很简单,这里只记下用法,不深入分析线程。 代码如下 //实现方法pubRmRecordByRmPlanId @Override public OperateResult pubRmRecordByRmPlan...
【事务】<查询不到同一调用方法其它事务提交的更新>解决方案
最近遇到一个很棘手的问题,至今也解释不清楚原因,不过已经找到了解决方案。先来看看Propagation属性的值含义,@Transactional中Propagation属性有7个选项可供选择: Propagation.MANDATORY。当前方法必须在已经定义的Transaction中运行,如果没有已定义的Transaction则抛出异常。 Propagation.NEST。如果没有已定义的Tran
在线程里面控制事务的提交和回滚
把txManager通过构造方法传入进来 最后再commit或者rollback就可以了