Spring TransactionTemplate是否创建线程?

时间:2011-10-04 18:46:13

标签: java spring jdbc concurrency transactions

由于并发访问,我遇到了数据结构损坏的问题。我试图排除可能的原因,但我不确定Spring TransactionTemplate是如何工作的。

有多个线程将独立列表传递给CallbackHandler的构造函数。然后将此CallbackHandler传递给TransactionTemplate的execute方法。在任何地方都没有同步块。

在执行方法完成之前和之后,在CallbackHandler和调用线程中访问该列表。据我所知,执行 DOES NOT 启动一个新的Thread。因此,这应该是安全的。

每个线程都创建自己的独立列表CallbackHandler,只有TransactionTemplate对所有人都相同。

或者Spring会在某个时刻创建一些新线程吗?

1 个答案:

答案 0 :(得分:4)

您可以查看TransactionTemplate here的源代码。

如您所见,没有创建新线程。

您确定您的线程安全错误不在代码的其他区域吗?或许看一些你正在做的事情会有所帮助。