我正在構建一個使用中央數據庫的多線程系統。在Executors.withFixedSizePool中創建固定大小的數據庫連接
我遇到的問題是我想創建一個固定大小的數據庫連接。
我使用Executors.newFixedSizePool
來創建最大池池線程數量等於MAX_N
。
我使用execute
函數執行我的線程ExecutorService
。
我想建立我的系統,只要這個池線程還活着,我的池中的每個池線程就會持有到數據庫的單個連接。所以,當我的線程在execute
池中時,只有MAX_N
連接到數據庫。另外,因爲Executors.newFixedSizePool
關注了共享線程的數量,並且在它們中的一些由於異常而停止時創建新的線程,所以我希望同樣適用於我的數據庫連接。
所以我在找的是使用Executors.newFixedSizePool
創建一個固定大小的池線程,每個池線程都有自己的數據庫連接。如果池化線程終止,則此連接關閉,並且如果構建了新的池化線程,則還將構建新的連接並將其鏈接到此池化線程。
我搜索了一種方法來做到這一點,但沒有找到有用的東西。有沒有一個正確的方法來做到這一點?
是它是一個問題,如果你單獨創建一個連接池,當工人要求應該從連接獲取連接pool.I認爲,如果一個專用連接,那麼可能並不總是使用它。 –
它不能解決我的問題。我需要連接數不變。例如,如果連接意外關閉,我想要創建一個新的連接。 –
該任務將委託給連接池。請確保連接池大小應與池大小相同。如果它與線程關聯,則線程創建還包括連接創建時間。 –