宝贝腿开大点我添添你视频男男,中文字幕熟女人妻av一区二区三区,爱色成人网,大地资源高清播放在线观看在线电影在线观看 ,777米奇影视第四色

集團站切換校區(qū)

驗證碼已發(fā)送,請查收短信

復(fù)制成功
微信號:togogoi
添加微信好友, 詳細了解課程
已復(fù)制成功,如果自動跳轉(zhuǎn)微信失敗,請前往微信添加好友
打開微信
圖標(biāo)

騰科動態(tài)

當(dāng)前位置:首頁 > >騰科動態(tài) > >

什么需要使用線程池?什么是池化技術(shù)?

發(fā)布時間: 2023-07-24 16:30:15

一、 背景

池化技術(shù)能夠減少資源對象的創(chuàng)建次數(shù),提?程序的響應(yīng)性能,特別是在?并發(fā)下這種提?更加明顯。使用池化技術(shù)緩存的資源對象有如下共同特點:

1. 對象創(chuàng)建時間長;

2. 對象創(chuàng)建需要大量資源;

3. 對象創(chuàng)建后可被重復(fù)使用像常見的線程池、內(nèi)存池、連接池、對象池都具有以上的共同特點。

二、 連接池

什么是數(shù)據(jù)庫連接池

定義:數(shù)據(jù)庫連接池(Connection pooling)是程序啟動時建立足夠的數(shù)據(jù)庫連接,并將這些連接組成一個連接池,由程序動態(tài)地對池中的連接進行申請,使用,釋放。

大白話:創(chuàng)建數(shù)據(jù)庫連接是?個很耗時的操作,也容易對數(shù)據(jù)庫造成安全隱患。所以,在程序初始化的時候,集中創(chuàng)建多個數(shù)據(jù)庫連接,并把他們集中管理,供程序使用,可以保證較快的數(shù)據(jù)庫讀寫速度,還更加安全可靠。這里講的數(shù)據(jù)庫,不單只是指Mysql,也同樣適用于Redis。

為什么使用數(shù)據(jù)庫連接池

1. 資源復(fù)用:由于數(shù)據(jù)庫連接得到復(fù)用,避免了頻繁的創(chuàng)建、釋放連接引起的性能開銷,在減少系統(tǒng)消耗的基礎(chǔ)上,另一方面也增進了系統(tǒng)運行環(huán)境的平穩(wěn)性(減少內(nèi)存碎片以及數(shù)據(jù)庫臨時進程/線程的數(shù)量)。

2. 更快的系統(tǒng)響應(yīng)速度:數(shù)據(jù)庫連接池在初始化過程中,往往已經(jīng)創(chuàng)建了若干數(shù)據(jù)庫連接置于池中備用。此時連接的初始化工作均已完成。對于業(yè)務(wù)請求處理而言,直接利用現(xiàn)有可用連接,避免了從數(shù)據(jù)庫連接初始化和釋放過程的開銷,從而縮減了系統(tǒng)整體響應(yīng)時間。

3. 統(tǒng)?的連接管理:避免數(shù)據(jù)庫連接泄露,在較為完備的數(shù)據(jù)庫連接池實現(xiàn)中,可根據(jù)預(yù)先的連接占用超時設(shè)定,強制收回被占用連接。從而避免了常規(guī)數(shù)據(jù)庫連接操作中可能出現(xiàn)的資源泄露。

如果不使用連接池

1. TCP建立連接的三次握手(客戶端與MySQL服務(wù)器的連接基于TCP協(xié)議)

2. MySQL認證的三次握手

3. 真正的SQL執(zhí)行

4. MySQL的關(guān)閉

5. TCP的四次握手關(guān)閉

可以看到,為了執(zhí)行?條SQL,需要進行TCP三次握手,Mysql認證、Mysql關(guān)閉、TCP四次揮手等其他操作,執(zhí)行SQL操作在所有的操作占比非常低。

?

優(yōu)點:實現(xiàn)簡單

缺點:

· 網(wǎng)絡(luò)IO較多

· 帶寬利用率低

· QPS較低

· 應(yīng)用頻繁低創(chuàng)建連接和關(guān)閉連接,導(dǎo)致臨時對象較多,帶來更多的內(nèi)存碎片

· 在關(guān)閉連接后,會出現(xiàn)大量TIME_WAIT 的TCP狀態(tài)(在2個MSL之后關(guān)閉)

長連接和連接池的區(qū)別

· 長連接是?些驅(qū)動、驅(qū)動框架、ORM工具的特性,由驅(qū)動來保持連接句柄的打開,以便后續(xù)的數(shù)據(jù)庫操作可以重用連接,從而減少數(shù)據(jù)庫的連接開銷。

· 而連接池是應(yīng)用服務(wù)器的組件,它可以通過參數(shù)來配置連接數(shù)、連接檢測、連接的生命周期等。

· 連接池內(nèi)的連接,其實就是長連接。

三、 內(nèi)存池

為什么要用內(nèi)存池

1. 在需要堆內(nèi)存管理一些數(shù)據(jù)的時候直接malloc,容易造成內(nèi)存碎片

2. 在需要堆內(nèi)存管理一些數(shù)據(jù)的時候直接malloc,容易忘記free,造成內(nèi)存泄漏,利于內(nèi)存管理

異步請求要點

1. 請求方作為客戶端請求后(send/sendto),把fd交給epoll管理,不等待結(jié)果返回(recv/recvfrom)。

2. epoll_wait在一個線程死循環(huán)中,當(dāng)epoll收到消息,在進行處理(recv/recvfrom)。

上一篇: 了解華為云OBS對象儲存,讓你的數(shù)據(jù)管理變得更加簡單

下一篇: 網(wǎng)工路由基礎(chǔ)知識:IS-IS協(xié)議

在線咨詢 ×

您好,請問有什么可以幫您?我們將竭誠提供最優(yōu)質(zhì)服務(wù)!