美文网首页
Socket 编程之 NIO

Socket 编程之 NIO

作者: 又语 | 来源:发表于2019-12-07 16:24 被阅读0次

    本文介绍基于 NIO 实现 Socket 编程的方法及问题。


    目录

    • NIO 简介
    • NIO Socket 代码示例
    • 问题分析
    • 总结
    • 推荐参考

    NIO 简介

    NIO,全称 Non Blocking I/O,是 JDK 1.4 引入的非阻塞 I/O 模型。
    NIO 引入以下几个概念:

    • Channel:通道,类似 BIO 中的流,区别在于传统 I/O 流是单向的,Channel 是双向的,基于 NIO 的数据交换都在 Channel 中产生。
    • Buffer:缓冲区,用于 Channel 与类间交换数据,Channel 向 Buffer 中写入数据供类读取,也可以从 Buffer 中读取类写入的数据。
    • Selector:选择器,基于多路复用的 I/O 模型,允许将多个 Channel 注册到一个 Selector 线程上处理。

    注意:所有系统的 I/O 都分为两个阶段:等待就绪操作。举例说明,读过程分为 等待系统可读执行读,写过程分为 等待网卡可写执行写

    NIO 的重要特点:Socket 的主要读、写、注册和接收函数,在等待阶段都是非阻塞的,真正的 I/O 操作(执行读和执行写)是同步阻塞的,虽然消耗 CPU 但是性能非常好。


    NIO Socket 代码示例


    问题分析


    总结


    推荐参考

    相关文章

      网友评论

          本文标题:Socket 编程之 NIO

          本文链接:https://www.haomeiwen.com/subject/bmpugctx.html