線程池的原理和連接池的原理

線程池的原理:     

      來看一下線程池究竟是怎麼一回事?其實線程池的原理很簡單,類似於操作系統中的緩衝區的概念,它的流程如下:先啓動若干數量的線程,並讓這些線程都處於睡眠狀態,當客戶端有一個新請求時,就會喚醒線程池中的某一個睡眠線程,讓它來處理客戶端的這個請求,當處理完這個請求後,線程又處於睡眠狀態。可能你也許會問:爲什麼要搞得這麼麻煩,如果每當客戶端有新的請求時,我就創建一個新的線程不就完了?這也許是個不錯的方法,因爲它能使得你編寫代碼相對容易一些,但你卻忽略了一個重要的問題??性能!就拿我所在的單位來說,我的單位是一個省級數據大集中的銀行網絡中心,高峯期每秒的客戶端請求併發數超過100,如果爲每個客戶端請求創建一個新線程的話,那耗費的CPU時間和內存將是驚人的,如果採用一個擁有200個線程的線程池,那將會節約大量的的系統資源,使得更多的CPU時間和內存用來處理實際的商業應用,而不是頻繁的線程創建與銷燬。

 

   數據庫連接池:
     

     數據庫連接是一種關鍵的有限的昂貴的資源,這一點在多用戶的網頁應用程序中體現得尤爲突出。

     一個數據庫連接對象均對應一個物理數據庫連接,每次操作都打開一個物理連接,使用完都關閉連接,這樣造成系統的 性能低下。 數據庫連接池的解決方案是在應用程序啓動時建立足夠的數據庫連接,並講這些連接組成一個連接池(簡單說:在一個“池”裏放了好多半成品的數據庫聯接對象),由應用程序動態地對池中的連接進行申請、使用和釋放。對於多於連接池中連接數的併發請求,應該在請求隊列中排隊等待。並且應用程序可以根據池中連接的使用率,動態增加或減少池中的連接數。 
    連接池技術儘可能多地重用了消耗內存地資源,大大節省了內存,提高了服務器地服務效率,能夠支持更多的客戶服務。通過使用連接池,將大大提高程序運行效率,同時,我們可以通過其自身的管理機制來監視數據庫連接的數量、使用情況等。

    1) 最小連接數是連接池一直保持的數據庫連接,所以如果應用程序對數據庫連接的使用量不大,將會有大量的數據庫連接資源被浪費; 
    2) 最大連接數是連接池能申請的最大連接數,如果數據庫連接請求超過此數,後面的數據庫連接請求將被加入到等待隊列中,這會影響之後的數據庫操作。

發佈了60 篇原創文章 · 獲贊 28 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章