美文网首页
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

    本文介绍基于 NIO 实现 Socket 编程的方法及问题。 目录 NIO 简介 NIO Socket 代码示例 ...

  • IO发展

    socket---> bio ---> nio --> aio --> nettyio--------------...

  • nio实现socket

    1、nio实现socket 服务段 客户端

  • Java Network 01 - Socket and IO

    该文只涉及Socket和IO(不含NIO) 复习经典网络结构 Socket Berkeley sockets is...

  • Socket 网络编程之 BIO/NIO/AIO 编程

    https://blog.csdn.net/weixin_42140314/article/details/802...

  • Netty深入浅出(一)入门

    传统Socket中,NIO和IO的比较(Nio知识回顾) IO 阻塞点: server.accept(); 和单线...

  • Java原生Nio编程

    原生Nio编程 NIO提供了与传统BIO模型中的Socket和ServerSocket相对应的SocketChan...

  • Java NIO

    # Java NIO # Java NIO属于非阻塞IO,这是与传统IO最本质的区别。传统IO包括socket和文...

  • Linux 里进程阻塞原理

    误区一:进程阻塞消耗 CPU 资源 我以前以为进程阻塞是不好的,比如 NIO 里 Socket socket = ...

  • socket的简单使用

    1、网络中进程之间如何通信? 2、Socket是什么? 3、socket的基本操作 3.1、socket()函数 ...

网友评论

      本文标题:Socket 编程之 NIO

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