reactor模式的介绍 说Reactor模式前 我们看下epoll实现的服务器有什么改进的地方 在上几篇博客有介绍 io多用复用 其中主要介绍了epoll,最后 epoll实现了 io多路复用的服务器,我们再捋一捋目前大致情况就是这样,现在是可以用,但是呢? 还可以优化下吗?因为每次都是要问三次情况,有点冗余了 客户端有连接也是通过一个fd来管理,也是可读事件,那么讲 客户端连接也纳入 可读事件里 现在如下图所示: 2022-03-12 #网络
char*和char[ ]的区别 关于此类的问题都放在这里了,不另起文章了 基础知识遇到了一道题目: 12345678910111213char *fun1() { char *x = "abcd"; return x;}char *fun2() { char str[] = "abcd"; //存放在静态数据区 return str;}in 2022-03-11 #基础语法
epoll中 LT 和 ET 区别 上文解释过epoll 原理,现在梳理下epoll 的用法和 epoll 中两个读取数据的模式 现在用epoll 实现一个多路复用的服务器(代码在最后) LT 水平触发 有数据到来就一直读,直到没有数据可以读取了 ET 边缘触发 有到无,读规定的字节数,没读完,下次有事件了再读取 读取客户端发来的数据时候,只读五个字节,看下ET和LT会有什么不同 ET模式下 必须使用非阻 2022-03-11 #网络编程
LeetCode-动态规划 自己理解: **当前状态是由上一个状态推出来的,那么就会有个动态的过程,就会有一个公式,就是 状态转移公式,对于解题来说,主要的工作 是找到 这个公式,其实也可以说 是找规律(个人理解)** 2022-03-09
LeetCode-堆栈问题 1. 有效的括号给定一个只包括 ‘(‘,’)’,’{‘,’}’,’[‘,’]’ 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 2022-03-07 LeetCode #堆栈
LeetCode-树 1. 恢复二叉搜索树给你二叉搜索树的根节点 root ,该树中的 恰好 两个节点的值被错误地交换。请在不改变其结构的情况下,恢复这棵树 。 思路: 二叉搜索树 中序排序是升序的,中序遍历时 记录前一个节点, 比较当前节点和上个节点,正常的树是当前节点要大于上一节点 1234567891011121314151617181920212223242526class Solution {pu 2022-03-07 #树
LeetCode-树 1. 恢复二叉搜索树给你二叉搜索树的根节点 root ,该树中的 恰好 两个节点的值被错误地交换。请在不改变其结构的情况下,恢复这棵树 。 思路: 二叉搜索树 中序排序是升序的,中序遍历时 记录前一个节点, 比较当前节点和上个节点,正常的树是当前节点要大于上一节点 1234567891011121314151617181920212223242526class Solution {pu 2022-03-07 #树
LeetCode-双指针问题 1 移除元素给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 2022-03-06 LeetCode #双指针 滑动窗口