一、java連接池和線程池之間存在什么關(guān)系
聯(lián)系
只能說兩者的原理差不多,都是建立一個池,把連接或者線程放進去,但是兩者并無聯(lián)系。原理說像的地方就是都是事先準備好資源。連接池和線程池是完全不一樣的東西。
區(qū)別
連接池:
1、連接池是面向數(shù)據(jù)庫連接的
2、連接池是為了優(yōu)化數(shù)據(jù)庫連接資源
3、連接池有點類似在客戶端做優(yōu)化
數(shù)據(jù)庫連接是一項有限的昂貴資源,一個數(shù)據(jù)庫連接對象均對應(yīng)一個物理數(shù)據(jù)庫連接,每次操作都打開一個物理連接,使用完都關(guān)閉連接,這樣造成系統(tǒng)的性能低下。數(shù)據(jù)庫連接池的解決方案是在應(yīng)用程序啟動時建立足夠的數(shù)據(jù)庫連接,并將這些連接組成一個連接池,由應(yīng)用程序動態(tài)地對池中的連接進行申請、使用和釋放。對于多于連接池中連接數(shù)的并發(fā)請求,應(yīng)該在請求隊列中排隊等待。并且應(yīng)用程序可以根據(jù)池中連接的使用率,動態(tài)增加或減少池中的連接數(shù)。?
線程池:
1.、線程池是面向后臺程序的
2、線程池是是為了提高內(nèi)存和CPU效率
3、線程池有點類似于在服務(wù)端做優(yōu)化
線程池是一次性創(chuàng)建一定數(shù)量的線程(應(yīng)該可以配置初始線程數(shù)量的),當用請求過來不用去創(chuàng)建新的線程,直接使用已創(chuàng)建的線程,使用后又放回到線程池中。
避免了頻繁創(chuàng)建線程,及銷毀線程的系統(tǒng)開銷,提高是內(nèi)存和CPU效率。
延伸閱讀:
二、什么是數(shù)據(jù)庫和數(shù)據(jù)庫管理系統(tǒng)
數(shù)據(jù)庫的應(yīng)用非常廣泛,舉個例子,我們平時在瀏覽器上搜索內(nèi)容,就要用到數(shù)據(jù)庫去檢索我們的關(guān)鍵字。以前我們可能會用數(shù)組、集合、文件等來存儲數(shù)據(jù),但是接下來我們就會面臨一個問題,當存儲的數(shù)據(jù)或內(nèi)容過多的時候,我們?nèi)绾稳ゾ珳实恼业轿覀冃枰臇|西,這時候數(shù)據(jù)庫管理系統(tǒng)就派上了用場。除此之外,數(shù)據(jù)庫管理系統(tǒng)還能永久的儲存我們的數(shù)據(jù)。
為了便于大家理解,這里先給大家講解幾個概念
DB數(shù)據(jù)庫(database):存儲數(shù)據(jù)的“倉庫”。它保存了一系列有組織的數(shù)據(jù)。
DBMS數(shù)據(jù)庫管理系統(tǒng)(Database Management System):數(shù)據(jù)庫是通過DBMS創(chuàng)建和操作的容器。