由于并发访问,我遇到了数据结构损坏的问题。我试图排除可能的原因,但我不确定春天是如何工作的。Spring TransactionTemplate是否创建线程?
有多个线程将独立列表传递给CallbackHandler
的构造函数。然后这个CallbackHandler
被传递给TransactionTemplate
的执行方法。任何地方都没有同步块。
该列表在CallbackHandler
中以及执行方法完成之前和之后的调用线程中访问。据我了解呼吁执行不是开始一个新的Thread
。因此,这应该是安全的。
每个线程创建自己的独立列表和CallbackHandler
,只有TransactionTemplate
是相同的所有。
还是Spring在某些时候创建了一些新线程?
你能否详细说明“由于并发访问导致数据结构损坏”。 “那些”列表中的一个是否被损坏?它在提交时是否损坏?你有'CallbackHandler'等共享状态/静态,等等。 – tolitius