摘要: Proactor 网络模型 本文内容主要参考 asio文档 Proactor 和其他网络模型最大的区别就是 Proactor 中,执行 I/O 的职责由操作系统代为我们承担,因此使用 Proactor 网络库的应用程序代码里,是不会有 read、write 等 I/O 接口调用的 Proactor 阅读全文
posted @ 2022-02-23 23:40 路过的摸鱼侠 阅读(153) 评论(0) 推荐(0) 编辑
摘要: CMake 交叉编译 交叉编译就是说在平台 A (宿主机)上编译出可以在平台 B (目标机) 上运行的程序,比如在 x86 上编译 ARM 程序 要交叉编译首先要去下载目标平台的工具链,比如要编译 ARM 程序就应该去下载 Linaro 提供的工具链 交叉编译时,我们的 CMake 文件也需要做一些 阅读全文
posted @ 2022-02-23 21:59 路过的摸鱼侠 阅读(1843) 评论(0) 推荐(1) 编辑
摘要: # C++ 左值和右值 C++中值有两个独立的属性 - 有身份(has identity):或者说,有地址,有指向它的指针 - 有身份的值统称为 glvalue (“generalized” lvalue) - 可以被移动(can be moved from) - 可以移动的值统称为 rvalue 阅读全文
posted @ 2022-02-23 21:39 路过的摸鱼侠 阅读(156) 评论(0) 推荐(0) 编辑
摘要: # C++ 列表初始化 C++11 中,引入了用 `{}` 执行初始化的统一形式,C++11 称这种形式为统一初始化(Uniform initialization) 使用这种形式,可以解决所谓的“C++最令人恼怒的解析问题” ## 最令人恼怒的解析问题 该问题源于函数风格的转型和函数声明之间的相似性 阅读全文
posted @ 2022-02-23 21:11 路过的摸鱼侠 阅读(742) 评论(0) 推荐(0) 编辑
摘要: Libco 源码分析 设计目标 libco 的设计目标是对现有同步代码做异步化改造,但完全重写为异步的代码基本需要将所有代码重写,工作量太大 libco 的做法是采用 Linux 下的 hook 机制,将 glibc 的阻塞系统调用捕获,将它的底层逻辑改为异步的,以实现代码的无缝迁移 协程设计 什么 阅读全文
posted @ 2022-02-23 19:14 路过的摸鱼侠 阅读(418) 评论(0) 推荐(0) 编辑
摘要: BASE 理论 BASE 指的是 基本可用(Basically Available) 分布式系统在出现故障时,允许损失部分可用性,即保证核心可用 可以通过流量削峰、延迟响应、体验降级、过载保护等手段来实现 软状态( Soft State) 允许系统存在中间状态,而该中间状态不会影响系统整体可用性 这 阅读全文
posted @ 2022-02-23 19:09 路过的摸鱼侠 阅读(149) 评论(0) 推荐(0) 编辑
摘要: CAP 理论 CAP 理论将分布式系统的特性概括为三个维度 一致性(Consistence) 对某个指定的客户端来说,读操作保证能够返回最新的写操作结果 强调数据的正确性 可用性(Availability) 非故障的节点在合理的时间内返回合理的响应(不是错误和超时的响应) 强调的是服务的可用,但不保 阅读全文
posted @ 2022-02-23 19:07 路过的摸鱼侠 阅读(118) 评论(0) 推荐(0) 编辑