连接建立、连接断开、发送和接收
这四个过程都是通过网络IO完成的,网络IO又细分为检测IO和操作IO 。操作方式包括阻塞和非阻塞 。
二、操作IO后返回值及对应现象
三、检测IO
多个IO检测有IO多路复用完成 。
注意:接收连接时需要监听和read须两个读事件,主动连接时需要监听和write两个写事件 。
连接断开时错误码: 连接发生错误、 连接读端关闭、 连接双端关闭 。
由IO多路复用检测IO和非阻塞操作IO组成 。
四、为什么搭配非阻塞IO?
【二、操作IO后返回值及对应现象】1.多线程:一个由多个处理 。其中一个线程会获得锁处理,此时该fd相对于其他线程是阻塞状态,所以应该用非阻塞使其他线程立刻返回 。
文章插图
2.边缘触发模式下:通常采取一次事件触发,循环读取直到内核缓冲区为空的方式 。防止为空时还继续read,导致的阻塞 。
3.中的bug:当接收缓冲区中有新数据分节到达时,会报告该fd可读,但随后协议栈检查到分借检验和错误,会丢弃该分节导致该fd无数据可读造成阻塞 。
五、 在组件中的应用
redis特点:k ,v数据结构复杂,加锁困难(锁的粒度和种类),多采用单线程(业务逻辑)、具体的read和 (日志记录) write 和(获取排行榜记录) 放到线程池处理 。
: k,v数据节后简单,更适合并发处理多业务(主线程后,通过管道的方式通知其他线程,多线程对应多个业务) 。
nginx: 也适合处理业务类型复杂的任务 。通过进程隔离运行环境避免枷锁,从后fork多个子进程进行,通过锁在用户态解决惊群问题 。
- 红顶商人王炽是如何一穷二白到创下万贯家财的?
- 通辽旅游
- 国产服装品牌排行榜:波司登位居榜首,雅戈尔、安踏分列二、三 中国十大男装品牌排行
- 山西省汾阳市
- 安徽淮北丨运河寻梦游、一座古老又年轻的城市 淮北的中国之最
- 8款最特别浴缸,有黄金、水晶、孔雀石…… 吉尼斯记录浴缸
- 阿拉斯加州、阿拉斯加州怎么成为美国领土
- 爸爸去哪第二季嘉宾、爸爸去哪第二期演员
- 赛金花从名妓到状元之妾、公使夫人的起伏人生
- 巴里岛咖啡、巴厘岛的咖啡值得买吗