epoll

简析:我读过最好的Epoll模型讲解_mango_song的博客-CSDN博客_比epoll更好的模型

详解:IO多路复用机制详解_瑟寒凌风的博客-CSDN博客

基于epoll的IO多路复用并发模型:Linux网络编程:基于epoll的IO多路复用并发模型_ka__ka__的博客-CSDN博客

select、poll、epoll详解_select poll epoll_yygr的博客-CSDN博客 

简介

套接字:套接字是一种通信机制(通信的两方的一种约定),通常指的是封装了ip和port的结构体,又称插口,是TCP用主机的IP地址加上主机上的端口号作为TCP连接的端点,这种端点就叫做套接字或插口。是网络通信过程中端点的抽象表示,包含进行网络通信必需的五种信息:1、连接使用的协议;2、本地主机的IP地址;3、本地进程的协议端口;4、远地主机的IP地址;5、远地进程的协议端口。

文件描述符:fd,即file descriptor,文件描述符。linux下,所有的操作都是对文件进行操作,而对文件的操作是利用文件描述符来实现的。

IO多路复用:一个线程处理多个链接

同步和异步

描述的是用户线程与内核的交互方式:同步是指用户线程发起IO请求后需要等待或者轮询内核IO操作完成后才能继续执行;而异步是指用户线程发起IO请求后仍继续执行,当内核IO操作完成后会通知用户线程,或者调用用户线程注册的回调函数。

阻塞和非阻塞

描述的是用户线程调用内核IO操作的方式:阻塞是指IO操作需要彻底完成后才返回到用户空间;而非阻塞是指IO操作被调用后立即返回给用户一个状态值,无需等到IO操作彻底完成。

epoll

// 创建一个epoll的fd,向内核申请一个简易的文件系统管理fd
int epoll_create(int size);  

// epoll的事件注册,增删改,还有事件模式如水平触发还是边沿触发
int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event);  

 // epoll_wait在调用时,给定的timeout时间内,当在监控的所有fd中有事件发生时,就返回
int epoll_wait(int epfd, struct epoll_event *events,int maxevents, int timeout);  

头条面试官:NIO 是不是就是I/O多路复用?我:不是

同步阻塞IO

同步非阻塞IO

io多路复用模型(异步阻塞IO)

异步IO模型

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值