
IO
木鱼-
过一天就要进步一点,而且不知道也会更多,还有每天都会忘记一点。所以每天还得做功课
展开
-
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 评论 -
Reactor详解
reactor 是什么 为何要用,能解决什么问题 如何用,更好的方式 其他事件处理模式 一、Reactor 是什么关于reactor 是什么,我们先从wiki上看下:The reactor design pattern is an event handling pattern for handling service requests delivered concurrently to a service handler by one or more i...转载 2020-08-24 14:46:45 · 1292 阅读 · 0 评论 -
.NET I/O 操作
本文内容流 Stream 涉及的一些基本操作 用于文件 I/O 的类 通用 I/O Stream 类 演示 如何向文本文件写入字符串 如何从文本文件读取字符串 如何读取数据文件 如何向字符串写入字符 如何从字符串读取字符 抽象基类 Stream 支持读写字节。Stream 集成了异步支持。它默认的实现对它们相应的异步方法原创 2015-12-25 08:49:52 · 2300 阅读 · 0 评论 -
select、poll和epoll的区别
操作系统在处理io的时候,主要有两个阶段:等待数据传到io设备 io设备将数据复制到user space我们一般将上述过程简化理解为:等到数据传到kernel内核space kernel内核区域将数据复制到user space(理解为进程或者线程的缓冲区) select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步转载 2020-08-24 14:30:48 · 225 阅读 · 0 评论