官术网_书友最值得收藏!

2.3 NIO編程

在介紹NIO編程之前,我們首先需要澄清一個概念:NIO到底是什么的簡稱?有人稱之為New I/O,因為它相對于之前的I/O類庫是新增的,所以被稱為New I/O,這是它的官方叫法。但是,由于之前老的I/O類庫是阻塞I/O,New I/O類庫的目標就是要讓Java支持非阻塞I/O,所以,更多的人喜歡稱之為非阻塞I/O(Non-block I/O),由于非阻塞I/O更能夠體現(xiàn)NIO的特點,所以本書使用的NIO都指的是非阻塞I/O。

與Socket類和ServerSocket類相對應,NIO也提供了SocketChannel和ServerSocketChannel兩種不同的套接字通道實現(xiàn)。這兩種新增的通道都支持阻塞和非阻塞兩種模式。阻塞模式使用非常簡單,但是性能和可靠性都不好,非阻塞模式則正好相反。開發(fā)人員一般可以根據(jù)自己的需要來選擇合適的模式,一般來說,低負載、低并發(fā)的應用程序可以選擇同步阻塞I/O以降低編程復雜度,但是對于高負載、高并發(fā)的網(wǎng)絡應用,需要使用NIO的非阻塞模式進行開發(fā)。

下面的小節(jié)首先介紹NIO編程中的一些基本概念,然后通過NIO服務端的序列圖和源碼講解,讓大家快速地熟悉NIO編程的關鍵步驟和API的使用。如果你已經(jīng)熟悉了NIO編程,可以跳過2.3節(jié)直接學習后面的章節(jié)。

主站蜘蛛池模板: 措美县| 博湖县| 桦南县| 云林县| 淮阳县| 上栗县| 博客| 霍山县| 丰宁| 当涂县| 平顶山市| 观塘区| 林口县| 开化县| 开远市| 建平县| 林州市| 浦北县| 阆中市| 邻水| 宝山区| 张家口市| 屏东市| 芦溪县| 沙田区| 齐河县| 民勤县| 县级市| 新竹市| 嵊泗县| 镇雄县| 瑞安市| 吉隆县| 辽宁省| 武定县| 建昌县| 临武县| 南宫市| 仁化县| 闸北区| 黄梅县|