當前位置:首頁 » 雲伺服器 » 伺服器如何查看線程池未關閉

伺服器如何查看線程池未關閉

發布時間: 2024-09-30 07:13:51

『壹』 線程池七大核心參數

線程池七大核心參數如下所示:

一、corePoolSize 線程池核心線程大小

線程池中會維護一個最小的線程數量,即使這些線程處理空閑狀態,他們也不會被銷毀,除非設置了allowCoreThreadTimeOut。這里的最小線程數量即是corePoolSize。任務提交到線程池後,首先會檢查當前線程數是否達到了corePoolSize,如果沒有達到的話,則會創建一個新線程來處理這個任務。

二、maximumPoolSize 線程池最大線程數量

當前線程數達到corePoolSize後,如果繼續有任務被提交到線程池,會將任務緩存到工作隊列(後面會介紹)中。如果隊列也已滿,則會去創建一個新線程來出來這個處理。線程池不會無限制的去創建新線程,它會有一個最大線程數量的限制,這個數量即由maximunPoolSize指定。

三、keepAliveTime 空閑線程存活時間

一個線程如果處於空閑狀態,並且當前的線程數量大於corePoolSize,那麼在指定時間後,這個空閑線程會被銷毀,這里的指定時間由keepAliveTime來設定。

四、unit 空閑線程存活時間單位

空閑線程存活時間單位是keepAliveTime的計量單位。

五、workQueue 工作隊列

新任務被提交後,會先進入到此工作隊列中,任務調度時再從隊列中取出任務。

六、threadFactory 線程工廠

創建一個新線程時使用的工廠,可以用來設定線程名、是否為daemon線程等等。

七、handler 拒絕策略

當工作隊列中的任務已到達最大限制,並且線程池中的線程數量也達到最大限制,這時如果有新任務提交進來,該如何處理呢。這里的拒絕策略,就是解決這個問題的。

線程池的優勢

1、線程和任務分離,提升線程重用性;

2、控制線程並發數量,降低伺服器壓力,統一管理所有線程;

3、提升系統響應速度,假如創建線程用的時間為T1,執行任務用的時間為T2,銷毀線程用的時間為T3,那麼使用線程池就免去了T1和T3的時間。

『貳』 mysql資料庫線程池問題,為什麼總是報錯Cannot create PoolableConnectionFactory

一般這種情況可能的原因有這幾種:
1. 可能連接超過mysql設置的上限(你的應該沒超)
2. 程序問題,建立了連接不關閉(這個有可能,看看你的session)
3. 在沒有使用連接池的情況下,每次都建立一個新的連接到資料庫(即使每次操作完畢都及時准確的close了),但是由於可能建立到資料庫連接的頻率很高(比如在for循環里),那麼會迅速建立大量的tcp連接到mysql的指定埠,OS在關閉tcp連接是有一定的延遲的,也是有一定數量限制的,所以就會出現無法連接的情況(connection refused)。
-------------------------------------
我個人感覺設置最大連接數可能用處不大,因為默認的是100,你說剛10個就出問題~所以我覺得可能還是和系統有關系,因為你說刷新的不頻繁就不會報錯~
不過你到可以先試試看~萬一能行更好不是~
還有啊,你可以找別的機器試驗下,在別人的電腦上做下測試~

熱點內容
電信營業廳安卓文件夾是哪個 發布:2024-11-25 15:40:14 瀏覽:497
後期配置本田遙控鑰匙怎麼換電池 發布:2024-11-25 15:39:37 瀏覽:234
vbs關機腳本 發布:2024-11-25 15:39:32 瀏覽:441
java收入 發布:2024-11-25 15:36:34 瀏覽:884
天天免費腳本 發布:2024-11-25 15:35:06 瀏覽:273
sql2000資料庫質疑 發布:2024-11-25 15:31:20 瀏覽:243
上傳醫保局 發布:2024-11-25 14:57:00 瀏覽:732
刀劍神域緩存 發布:2024-11-25 14:56:07 瀏覽:520
c語言計算機二級編程題 發布:2024-11-25 14:46:49 瀏覽:313
c語言判斷進程是否存在 發布:2024-11-25 14:42:50 瀏覽:274