
操作系统
文章平均质量分 77
oceanFishJ
欢迎关注“码农心经”公众号
展开
-
IO多路复用,select、poll、epoll区别
IO多路复用是一种同步IO模型,一个线程监听多个IO事件,当有IO事件就绪时,就会通知线程去执行相应的读写操作,没有就绪事件时,就会阻塞交出cpu。多路是指网络链接,复用指的是复用同一线程。 select fd_set数据结构定义如下,可以看出fd_set是一个整型数组,用于保存socket文件描述符 typedef long int __fd_mask; /* fd_set for select and pselect. */ typedef struct { #ifde..原创 2021-02-21 10:53:38 · 328 阅读 · 0 评论 -
I/O模型
7. I/O模型 阻塞I/O 读写文件,网络I/O。当发生读写文件或网络I/O读写时,操作会阻塞当前线程,直到完成I/O操作,才能继续向下执行。 一般采用多进程或多线程的方式来解决此类问题,但是由于过多的进程或过多的线程都会造成大量的资源浪费,并且多线程上下文切换,也会带来很大的开销 执行流程: 1. 应用程序调用recvform()系统调用函数,进入内核空间 2. 内核空间等待数据准备好 3. 内核空间将数据从内核空间拷贝到用户空间 4. 应用程序拿到数据进行后续处理原创 2021-02-18 13:15:40 · 136 阅读 · 0 评论