一、 什么是IO复用? 它是内核提供的一种同时监控多个文件描述符状态改变的一种能力;例如当进程需要操作多个IO相关描述符时(例如服务器程序要同时查看监听socket和大量业务socket是否有数据到来),需要内核能够监控这许多描述符,一旦这些描述符有就绪(或者状态改变了)就告诉主动告诉进程哪些描述符 ...
转载 2021-07-23 10:57:00
582阅读
2评论
本地IO:程序读写磁盘数据很慢,于是在内核中建立了pagecache进行加速。 不同的磁盘文件可能对应不同pagecache。 如果程序读写速度太快,可能pagecache来不及向磁盘写数据,需要注意双写一致性。 网络IO:待处理的数据存储在网卡的缓存buf中,每和其他主机建立一个连接,都会在内核新 ...
转载 2021-08-25 16:08:00
1069阅读
2评论
continue
原创 2015-02-01 17:56:23
4111阅读
转载 2015-05-06 00:41:00
122阅读
2评论
POSIX 同步IO、异步IO、阻塞IO、非阻塞IO,这几个词常见于各种各样的与网络相关的文章之中,往往不同上下文中它们的意思是不一样的,以致于我在很长一段时间对此感到困惑,所以想写一篇文章整理一下。 按POSIX的描述似乎把同步和阻塞划等号,异步和非阻塞划等号,但是为什么有的人说同步IO不等于阻塞
转载 2019-11-15 17:31:00
541阅读
2评论
1 操作系统 IO 相关概念1.1 内核态 / 用户态为了限制不同的程序之间的访问能力,防止他们获取别的程序的内存数据,或者随意访问外围设备,CPU 为指令划分了访问等级。而在操作系统中,这将分为内核态和用户态两个等级  内核态:CPU可以访问内存所有数据,包括外围设备,例如硬盘,网卡。CPU 也可以将自己从一个程序切换到另一个程序  用户态:只能受限的访问内存,且不允...
原创 2021-09-28 17:48:17
1313阅读
1点赞
Java学习笔记(12)——IO流和网络编程一、IO流1 io流概述1.1 流的分类1.操作数据单位:字节流、字符流2.数据的流向:输入流、输出流3.流的角色:节点流、处理流说明:红框对应的是IO流中的4个抽象基类。 蓝框的流需要大家重点关注。2 File类介绍2.1.File类的理解File类的一个对象,代表一个文件或一个文件目录(俗称:文件夹)File类声明在java.io包下File类中涉及
转载 2023-07-19 13:31:05
67阅读
目录 1 操作系统 IO 相关概念 1.1 内核态 / 用户态 1.2 用户空间、内核空间 1.3 IO 模型 2 Linux 系统 I/O 模型 2.1 关于同步,阻塞的解释 2.2 Linux 的几种 I/O 模型 2.2.1 同步阻塞IO (等待) 2....
转载 2019-05-30 11:59:00
237阅读
2评论
IO 性能对于一个系统的影响是至关重要的。一个系统经过多项优化以后,瓶颈往往落在数据库;而数据库经过多种优化以后,瓶颈最终会落到 IO 。而 IO 性能的发展,明显落后于 CPU 的发展。 Memchached 也好, NoSql 也好,这些流行技术的背后都在直接或者间接地回避 IO 瓶颈,从而提高系统性能。 IO 系统的分层:    三层结构
转载 精选 2011-10-05 14:12:24
579阅读
在linux中,默认情况下所有的socket...
转载 2020-02-19 12:58:00
583阅读
2评论
这部分的东西在网络编程经常能看到,不过在所有IO处理中都是类似的。IO请求的两个阶段:等待资源阶段:IO请求一般需要请求特殊的资源(如磁盘、RAM、文件),当资源被上一个使用者使用没有被释放时,IO请求就会被阻塞,直到能够使用这个资源。使用资源阶段:真正进行数据接收和发生。举例说就是排队和服务。在等待数据阶段,IO分为阻塞IO和非阻塞IO。阻塞IO:资源不可用时,IO请求一直阻塞,直到反馈结果(有
原创 2015-12-07 14:23:16
811阅读
Linux 应用编程中最基础的知识:文件 I/O(Input、Outout)。文件 I/O 指的是对文件的输
转载 2021-12-16 11:12:21
186阅读
带缓存IO也叫标准IO,符合ANSI C 的标准IO处理,不依赖系统内核,所以移植性强。我们使用标准IO操作很多时候是为了减少对read()和write()的系统调用次数,带缓存IO其实就是在用户层再建立一个缓存区,这个缓存区的分配和优化长度等细节都是标准IO库代你处理好了,不用去操心。
原创 2022-01-12 16:21:38
212阅读
文件IO文件IO使用文件描述符作为操作文件的获取文件属性1、通过路径获取文件属性;int stat(const char * pchPath, struct stat *pBuf);样例:获取文件的大小void check_log() { int iRet; char chMod[MAX_STR128_LEN]; char *chLogName = g_sippco
原创 6月前
31阅读
1点赞
本文主要简要介绍 Unix I/O 5种模型,并对5大模型比较,并重点为后续章节解释IO多路复用做铺垫。
原创 5月前
44阅读
RxJava 线程控制RxJava 可以切换调度线程,控制每个操作在哪个线程执行。RxJava 内置的 Scheduler如果我们不指定线程,默认是在调用 subscribe 方法的线程上进行回调的。如果想切换线程,就需要使用调度器(Scheduler)。RxJava 内置了如下 5 个 Scheduler。Schedulers.immediate:直接在当前线程运行,它是 timeout、tim
转载 2023-05-18 19:33:47
343阅读
使用字节流     读取控制台输入         因为System.in是InputStream的一个实例,然而InputStream只定义了一个读取字节的输入方法read()      &nbsp
原创 2013-04-23 14:05:37
404阅读
前言 传统I/O 传统的I/O方式是通过read()和write()两个系统调用来完成的,具体步骤如下: 用户进程发起读数据请求,调用read方法,向操作系统请求读取数据,用户进程阻塞 操作系统收到读数据请求后,将该I/O操作发送给DMA控制器,由DMA控制器负责数据的读取,CPU可继续执行其他操作 当DMA中的缓冲区存储了足够的数据,DMA就会把数据发送到page cache中,这个过程不需要
原创 2023-04-27 13:15:03
1020阅读
◦IN和OUT的简称,CPU需要从内存中提取数据来运算,运算完送回内存,或者直接将电信号发向一些针脚以操作外部设备; ◦IN:从内存提取数据。 ◦OUT:运算完放回内存或者直接发送到某些其他针脚。 ◦对磁盘来说: ◦IN:写入磁盘 ◦OUT:从磁盘读   •现代计算机:IO是通过共享一条总线来
转载 2012-07-26 13:51:03
333阅读
       把字符串转换为数值      常用的形式如下:      s=br.readLine(); int i=Double.parseDouble(s);  &n
原创 2013-04-23 14:06:31
334阅读
  • 1
  • 2
  • 3
  • 4
  • 5