目前流程的多路復(fù)用IO實(shí)現(xiàn)主要包括四種: select、poll、epoll、kqueue。下表是他們的一些重要特性的比較;
多路復(fù)用IO技術(shù)最適用的是“高并發(fā)”場(chǎng)景,所謂高并發(fā)是指1毫秒內(nèi)至少同時(shí)有上千個(gè)連接請(qǐng)求準(zhǔn)備好。其他情況下多路復(fù)用IO技術(shù)發(fā)揮不出來(lái)它的優(yōu)勢(shì)。
另一方面,使用JAVA NIO進(jìn)行功能實(shí)現(xiàn),相對(duì)于傳統(tǒng)的Socket套接字實(shí)現(xiàn)要復(fù)雜一些,所以實(shí)際應(yīng)用中,需要根據(jù)自己的業(yè)務(wù)需求進(jìn)行技術(shù)選擇。