IO 阻塞与非阻塞 同步与异步

网络IO模型

IO是个我们很熟悉的操作,在操作系统的角度来讲,IO一般就是对磁盘文件的访问。但是站在网络的角度上说:

网络IO的本质是对socket的读取。

网络IO一般分为两阶段:数据准备和数据读写。

数据准备:根据系统IO操作的就绪状态分为阻塞和非阻塞
数据读写:根据应用程序和内核的交换方式分为同步和异步
陈硕大神:在处理IO的时候,阻塞与非阻塞都是同步IO。只有使用了特殊API才是异步IO

阻塞和非阻塞

下面看一段代码,我根据代码来解释阻塞和非阻塞:

int main()
{
   
	...
	char buff[128] = 0;
	int size = recv(sockfd,buff,sizeof(buff),0);
	if (size op 0)
	{
   
		...
	}
}

sockfd处于阻塞模式的时候,执行这个函数的进程如果recv没接收到数据的话,就不一直阻塞(卡在这里),不执行后面的代码。

当socket处于非阻塞模式的手,执行这个函数的进程即便recv没有接收到数据(recv会返回),程序也会往下去执行其他代码。
我们可以根据recv的返回值size来判断阻塞模式

if size == -1 断开连接
if size == 0 || errno = EAGAIN 无数据,非阻塞

同步与异步

还是上面那个代码来看同步:
同步的一个例子就是:当TCP缓冲区有数据了,应用程序就会将缓冲区的数据拷贝到buff里面,然后处理数据。

由于recv函数不是异步函数,所以我接下来说的都是把它当做异步函数看的。
进程把sockfd,buff还有一个信号sigio交给操作系统,当缓冲区有数据,操作系统把数据拷贝到buff,然后发送信号通知进程,进程拿到的就是填充好的buff。

一个例子就是取饭,同步就是食堂告诉你你的饭做好了,你要去端过来;异步就是食堂再叫个外卖员把饭送到你手里。

参考文献

[1] 施磊.重写moduo库.图论科技.2020.7.
[2] 8714f2c3f1b0.网络IO模型.简书.2018.9.https://www.jianshu.com/p/a95bcb116765
全部评论

相关推荐

不愿透露姓名的神秘牛友
04-30 17:45
本人简历上 1 个 RAG 项目 + 1 个 Agent demo;这次面的是AI岗一面前我以为:背完八股 + 把项目讲清楚,应该能稳过。0-5 min:自我介绍 + 项目背景- 顺利。讲清楚了我的 RAG 是给法律咨询场景做的,痛点是大模型不懂行业术语。5-20 min:项目深挖(开始崩)- Q1:你的法律文档总共多少?切了多少个 chunk?- 我:约 500 份 PDF,5 万个 chunk- Q2:500 份 PDF 加起来才 5 万 chunk?平均每份 100 个 chunk,你切片粒度是多少?- 我:512 token- Q3:法律文档里"第三条第二款"和"第三条之二"是不同含义,你的切片会不会把它切散?- 我:(沉默 5 秒)……应该会- Q4:那你怎么解决?- 我:我可以加一个 metadata……(开始编)❌ 第一次崩:切片粒度没考虑业务语义。20-35 min:评测体系(继续崩)- Q:你怎么知道你的 RAG 有效?- 我:我用 Recall@5……- Q:评测集多少条?怎么构造的?- 我:100 条,我手工标注的- Q:100 条够吗?分布怎么样?- 我:分布……我没分- Q:那你的 Recall@5 是 0.81,你怎么知道这个数字是好是坏?baseline 是什么?- 我:(沉默 10 秒)❌ 第二次崩:没有 baseline,没分布分析,纯靠"看起来还行"。35-55 min:Agent 部分(彻底崩)- Q:你的 Agent demo 用了几个工具?- 我:3 个,搜索、计算器、文档查询- Q:当用户问一个问题,你的 Agent 怎么决定调哪个工具?- 我:用 ReAct,让模型自己决定- Q:模型决策错了怎么办?- 我:我加了个 reflection……- Q:reflection 失败 3 次后怎么处理?- 我:(沉默 15 秒)……我没想过❌ 第三次崩:异常路径完全没设计。55-65 min:业务理解 + 反问- Q:你觉得字节做 AI 应用最大的瓶颈是什么?- 我:算力?数据?- Q:你看过哪些字节最近发的 AI 产品?- 我:豆包、扣子……- Q:扣子是 Agent 平台还是工作流平台?- 我:(再次沉默)❌ 第四次崩:对面试公司业务一无所知。
面试官拷打AI项目都会问...
点赞 评论 收藏
分享
04-28 10:14
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务