TianMu
  • 首页
  • 归档
  • 分类
  • 标签
  • 关于

C++语法细节复习(1)

MyString最普通的String模仿, 没有追加功能函数 : 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878
2025-04-28
#string #移动语义 #优化

Rpc分布式网络通信框架(1)

理论准备 单机聊天服务器的缺点 : 受限于硬件资源, 并发量有限制 -> 集群服务器解决 任意模块的修改都会导致整体的编译部署 -> 分布式解决 有些模块是CPU密集型, 有些是IO密集型, 对硬件资源不一样 -> 分布式解决 集群与分布式 : 集群 : 每个里面都运行了一个独立系统, 有全套的服务. 分布式 : 将不同服务搭载在不同的服务器上, 还可以对单
2025-04-27
#RPC

Muduo库源码剖析(6) TcpServer

TcpServer类详解 TcpServer将会作为Muduo库对外开放的核心类, 其提供接口开启服务器并设置设置回调函数与线程数量. 我们可以先预测一下TcpServer将要实现的功能 : 构造Acceptor并控制listen决定开始监听的时机. 构造EventLoopThreadPool并开辟设置的线程数量. 处理Acceptor监听到的每个connfd, 构建对应的TcpConne
2025-04-23
#Muduo

Muduo库源码剖析(5) TcpConnection

Buffer 和 TcpConnection 详解 本章我们将学习Buffer类和其上级类TcpConnection, 先了解两个类的职能 : Buffer 和通常的缓冲区认知类似, 目的在于提升传入传出的效率, 就是在read中可以提前把数据从内核接收缓冲区中读出, 便于对端再向内核接收缓冲区输入. 在write中可以提前把要写入的数据存进缓冲区, 等待内核发送缓冲区空余. TcpCo
2025-04-21
#Muduo

Muduo库源码剖析(4) Acceptor

Socket + Acceptor 详解 本章我们将学习Socket类和Acceptor类, 首先应当明确其在Muduo库中的职责所在 : Socket就是对原生socketAPI的封装, 供Acceptor使用. Acceptor简单来说是用来处理新连接的建立的. 我们来认识一下Acceptor的调用流程 TcpServer中会维护一个Acceptor作为成员变量, 由TcpServ
2025-04-17
#Muduo

Muduo库代码剖析(3) ThreadPool

ThreadPool相关 本章我们将把EventLoop和C++11的thread结合, 实现Thread / EventLoopThread / EventLoopThreadPool. 首先我们应当明晰将创建的三个类的意义何在 : Thread : 这是对thread库的封装, 会增加对各种线程运行状态与数据的维护. EventLoopThread : 将Thr
2025-04-16
#Muduo

Muduo库代码剖析(2) EventLoop

EventLoop 详解 EventLoop类似于Reactor模型中的反应堆(Reactor)和事件分发器(Demultiplex)的合并, 其目的在于高效的接收事件, 并正确分配给对应的事件处理器. EventLoop中有两类关键的子控件 : Channel 和 Poller. Channel 即通道, 其负责对单个文件描述符的事件管理, 存储该文件描述符感兴趣的事件与对应回调函数, 该
2025-04-15
#Muduo

Muduo库代码剖析(1)

理论知识 阻塞, 非阻塞, 同步, 异步数据准备 - 网络IO阶段1 阻塞 : 当前线程调用IO方法的线程进入阻塞状态 非阻塞 : 不会改变线程状态, 通过返回值判断 size == 0 对端关闭了连接 size > 0 接收到资源 size == 0 && errno = EAGAIN 数据读写 - 网络IO阶段2
2025-04-07
#Muduo

算法 状压dp | 区间dp | 树形dp

状压dp棋盘型状压, 重点考虑行与行之间的转移. 首先枚举每行可能的状态, 预处理出合法行状态. 可以选择预处理出行与行之间的合法转移 f[i][j]代表处理完前i行, 第i行状态为j的xxx. 转移方程通过枚举前状态k来实现, 看k是否可以合法转移为j 玉米田 : 十字型 + 地图机制 123456789101112131415161718192021222324252627
2025-04-03
#算法 #动态规划

算法 背包dp

关于”不大于””恰好””至少是”的讨论最标准的背包问题中, 装入背包的体积是要不大于m的, 但有些题目要求装入体积恰好是m, 或者至少是m, 思路一样, 但是初始化和最终获取答案的方式有区别. 12345// 不大于for(int i = 1; i <= n; i ++ ) for(int j = m; j >= v[i]; j -- ) f[j] = max(f[
2025-03-30
#算法
123…8

搜索

Hexo Fluid
总访问量 次 总访客数 人