2012-01-18 35 views
0

說一個線程輸入一個名爲m1()的方法並啓動一個新的事務。當第二個線程嘗試輸入相同的方法時,我們注意到第二個方法被阻止。 PROPOGATION_REQUIRED是否阻止第二個線程,直到第一個線程完成作業?隔離沒有設置(默認)。Spring的PROPAGATION_REQUIRED方法是否阻塞其他線程?

謝謝。

+2

連接池的大小是多少?另一個線程可能會阻止嘗試獲取其數據庫連接。 – mrembisz 2012-01-18 15:43:18

+0

連接池已被設置爲寬鬆。仍然看到有很多免費的連接 – nkare 2012-01-18 16:33:32

+0

看看線程正在等待什麼 - 然後jconsole可以提供幫助。 – mrembisz 2012-01-18 16:45:08

回答

2

不,交易傳播設置與一個線程被阻止無關。事務精確地用於允許多個線程同時訪問相同的數據庫而沒有問題。

此方法是否同步?因爲這會解釋阻塞行爲。

+0

驗證該方法不同步。謝謝。 – nkare 2012-01-18 16:34:41

+0

您也可以在AOP堆棧中有一個攔截器來同步這些調用。 – 2012-01-18 16:36:37

相關問題