天天看點

java 多線程事務_java – 如何在多線程中使用spring事務

我有一個方法如下:

ClassA.java

@Transactional

public void methodA(){

ExecutorService executorService = Executors.newFixedThreadPool(4);

executorService.execute(new Runnable() {

public void run() {

classB.methodB();

}

});

}

ClassB.java

@Transactional

public void methodB(){

updateDB();

}

方法B可以正常工作嗎?根據我的了解,methodB将附加方法A的事務,如果methodA退出方法B之前呢?我想隻有methodA可以由事務送出。但是methodB不會送出,因為事務送出之前。

我可以使用的methodB @Transactional(傳播= Propagation.REQUIRES_NEW)。這可以讓methodB有一個新的事務。但根據spring doc,methodA的轉換将在它調用methodB時挂起。我覺得很混亂這裡。

任何人可以幫助我這個問題?提前緻謝。