
NIO
木鱼-
过一天就要进步一点,而且不知道也会更多,还有每天都会忘记一点。所以每天还得做功课
展开
-
NIO学习笔记
NIO 操作系统背景知识 unix提供了5中io模型,其中java的底层实现依赖的是操作系统的io复用模型。linux提供select/poll,进程通过将一个或多个fd(文件描述符)传递给select或者poll,阻塞在select上,这样select/poll可以帮我们侦测多个fd是否处于就绪状态。select/poll顺序扫描fd是否就绪,并且支持的fd数量有限。linux还提供了一个epoll系统调用,使用事件驱动的方式代替顺序扫描fd,当有fd就绪时,执行回调函数rollback,因此性能更转载 2020-12-24 15:22:41 · 173 阅读 · 0 评论 -
【NIO系列】——之IO模型
这是【NIO系列】第二篇,欢迎持续关注: 【NIO系列】——之TCP探秘 上一篇我们讲到了关于TCP/IP协议的一些内容,这些是网络编程的必备知识。在了解NIO之前我们必须要了解一下对应的系统层IO模型,比如java的NIO对应是那种IO模型,阻塞和同步的差异在哪里,又是否相同。了解了这些更方便我们的后续的NIO探解。 一、同步、异步、阻塞、非阻塞 同步、异步,阻塞、非阻塞,这四种状态常有人分不清,主要是这四种状态的定义本身也不是很明确,所以各种解答的方式都有。常见的分类有以下: 同步阻转载 2020-08-24 15:16:31 · 175 阅读 · 0 评论 -
【NIO系列】——之TCP探秘
很开心,上半年发布的spring boot 2中,默认的web 容器是netty ,这说明“反应式” 容器已经是大势所趋,无论是go 语言的协从线程,还是java 基于reactor 线程模型,都是基于事件编程实现高并发的实例。这周开始我会讲关于NiO的一切,底层原理是什么,应用架构有哪些,如何利用其优势构建高性能服务器,欢迎关注。 在介绍NIO之前有必要了解下TCP协议,因为目前多数应用都是给予应用层进行操作,导致隐藏了大量的网路细节,知道这些细节以及原理对我们的问题排查很有益处。 一、TCP 特.转载 2020-08-24 15:15:32 · 166 阅读 · 0 评论