全國(guó)咨詢(xún)/投訴熱線:400-618-4000

首頁(yè)技術(shù)文章正文

I/O多路復(fù)用模型怎么理解?

更新時(shí)間:2023-05-15 來(lái)源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

I/O多路復(fù)用是指利用單個(gè)線程來(lái)同時(shí)監(jiān)聽(tīng)多個(gè)Socket ,并在某個(gè)Socket可讀、可寫(xiě)時(shí)得到通知,從而避免無(wú)效的等待,充分利用CPU資源。目前的I/O多路復(fù)用都是采用的epoll模式實(shí)現(xiàn),它會(huì)在通知用戶(hù)進(jìn)程Socket就緒的同時(shí),把已就緒的Socket寫(xiě)入用戶(hù)空間,不需要挨個(gè)遍歷Socket來(lái)判斷是否就緒,提升了性能。

其中Redis的網(wǎng)絡(luò)模型就是使用I/O多路復(fù)用結(jié)合事件的處理器來(lái)應(yīng)對(duì)多個(gè)Socket請(qǐng)求,比如,提供了連接應(yīng)答處理器、命令回復(fù)處理器,命令請(qǐng)求處理器;

在Redis6.0之后,為了提升更好的性能,在命令回復(fù)處理器使用了多線程來(lái)處理回復(fù)事件,在命令請(qǐng)求處理器中,將命令的轉(zhuǎn)換使用了多線程,增加命令轉(zhuǎn)換速度,在命令執(zhí)行的時(shí)候,依然是單線程。

分享到:
在線咨詢(xún) 我要報(bào)名
和我們?cè)诰€交談!