首页 >> 大全

二、操作IO后返回值及对应现象

2023-08-10 大全 28 作者:考证青年

连接建立、连接断开、发送和接收

这四个过程都是通过网络IO完成的,网络IO又细分为检测IO和操作IO。操作方式包括阻塞和非阻塞。

二、操作IO后返回值及对应现象

三、检测IO

多个IO检测有IO多路复用完成。

注意:接收连接时需要监听和read须两个读事件,主动连接时需要监听和write两个写事件。

连接断开时错误码: 连接发生错误、 连接读端关闭、 连接双端关闭。

由IO多路复用检测IO和非阻塞操作IO组成。

四、为什么搭配非阻塞IO?

1.多线程:一个由多个处理。其中一个线程会获得锁处理,此时该fd相对于其他线程是阻塞状态,所以应该用非阻塞使其他线程立刻返回。

对象作为返回值__返回之前的操作

2.边缘触发模式下:通常采取一次事件触发,循环读取直到内核缓冲区为空的方式。防止为空时还继续read,导致的阻塞。

3.中的bug:当接收缓冲区中有新数据分节到达时,会报告该fd可读,但随后协议栈检查到分借检验和错误,会丢弃该分节导致该fd无数据可读造成阻塞。

五、 在组件中的应用

redis特点:k ,v数据结构复杂,加锁困难(锁的粒度和种类),多采用单线程(业务逻辑)、具体的read和 (日志记录) write 和(获取排行榜记录) 放到线程池处理。

: k,v数据节后简单,更适合并发处理多业务(主线程后,通过管道的方式通知其他线程,多线程对应多个业务)。

nginx: 也适合处理业务类型复杂的任务。通过进程隔离运行环境避免枷锁,从后fork多个子进程进行,通过锁在用户态解决惊群问题。

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了