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

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

發布時間: 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個就出問題~所以我覺得可能還是和系統有關系,因為你說刷新的不頻繁就不會報錯~
不過你到可以先試試看~萬一能行更好不是~
還有啊,你可以找別的機器試驗下,在別人的電腦上做下測試~

熱點內容
盤58解壓碼 發布:2024-09-30 09:17:59 瀏覽:774
android非同步載入網路圖片 發布:2024-09-30 09:13:04 瀏覽:927
解壓捏耳朵 發布:2024-09-30 09:13:03 瀏覽:411
txt文檔編譯 發布:2024-09-30 09:00:47 瀏覽:865
添加國際網路伺服器地址 發布:2024-09-30 08:44:14 瀏覽:717
域名交易源碼 發布:2024-09-30 08:23:29 瀏覽:687
未兼容安卓什麼意思 發布:2024-09-30 08:23:28 瀏覽:861
幫忙峰腳本 發布:2024-09-30 07:58:36 瀏覽:195
android自動化測試腳本 發布:2024-09-30 07:32:51 瀏覽:509
伺服器如何查看線程池未關閉 發布:2024-09-30 07:13:51 瀏覽:414