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