开发者社区> 问答> 正文

同步非阻塞NIO是怎么操作的?

同步非阻塞NIO是怎么操作的?

展开
收起
鲁花花生油 2021-10-29 15:30:53 448 0
来自:华章出版社
1 条回答
写回答
取消 提交回答
  • socket连接默认是阻塞模式,在Linux系统下,可以通过设置将socket变成为非阻塞的模式(Non-Blocking)。使用非阻塞模式的IO读写,叫作同步非阻塞IO(None Blocking IO),简称为NIO模式。在NIO模型中,应用程序一旦开始IO系统调用,会出现以下两种情况:

    (1)在内核缓冲区中没有数据的情况下,系统调用会立即返回,返回一个调用失败的信息。

    (2)在内核缓冲区中有数据的情况下,是阻塞的,直到数据从内核缓冲复制到用户进程缓冲。复制完成后,系统调用返回成功,应用进程开始处理用户空间的缓存数据。

    资料来源:《Netty、Redis、ZooKeeper高并发实战》,文章链接:https://developer.aliyun.com/article/726757

    2021-10-29 15:33:38
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
+ 订阅
问答排行榜
最热
最新

相关电子书

更多
多IO线程优化版 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载