75.epoll ltet
lesson51就绪队列把新链接拿走了但是没有accept下次检测还是就绪的继续激活又给就绪队列了。面试题为什么ET模式必须工作在非阻塞模式下因为ET模当中底层有了数据只通知上层一次这种通知策略倒逼程序员把数据读完因为并不知道内核数据读没读完所以应用层循环读取读完继续读继续recv阻塞的话单进程就会出错必须设置非阻塞。返回值小于期望值也代表读完了总共3000每次100正好读完也是巧合我们屋脑循环通过看错误码eagain判断。LT下也可以非阻塞循环全读为什么是ET效率高面试题LTET谁更高效超过低水位线才通知上层取走因为系统调用有成本。TCP报文携带PSH标志只要有数据立即就绪ET模式下不取就丢了看13课件LET我期望这次没读完buff留下来下次读拼接下次如果是别人buff又给别人了所以这个代码不对。未来我这个服务器通过listener accep新的文件描述符通过epoller告诉我文件描述符是否就绪获取新链接我拿到的不仅仅是文件描述符我把文件描述符封装成connection插入到connectionsli未来读就可以把数据读到当前sockfd in outbuferr里 这样每一个套接字都有各自缓冲区。普通套接字和listener当成一个怎吗处理Listenner当成connection子类TCP 中的connerction指针可以指向listener对象但是读方式不一样但是函数名可以一样。TCPserver内部有个epoller对象还有unorderedmap ,通过文件描述符管理所有coonnection对象所以TCPserver相当于一个容器把所有connection装到connections里面listen加进去之后服务器启动调用wait获取就绪事件就获取到了fd拿着fd查map表就能找到connection就能找到继承的recv再也不关心listen还是普通套接字课堂板书/20250605_Reactor开始.png · whb-helloworld/113 - 码云 - 开源中国