
#+C++服务器开发学习之道
文章平均质量分 81
主要记录跳过基础知识 从打好数据结构的基石为起,到解剖C++后台开发技能树展开的学习之道,最终目标为,微服务的深入理解。
2_PQ
通过不断的积累才能触碰到自己想要的目标
展开
-
手把手实现webserver网页服务器(二)-- 线程池的实现
手把手实现web server网页服务器第二章 实现webserver的线程池文章目录手把手实现web server网页服务器前言一、互斥锁类二、条件变量类三、条件变量类四、线程池的封装总结前言本章节介绍,在webserver实现的过程用,多个客户端与服务器之间的连接采用了线程池的管理,线程同步机制封装类,包含了一、互斥锁类二、条件变量类三、信号量类提示:以下是本篇文章正文内容,下面案例可供参考一、互斥锁类代码如下(示例):class locker{public:原创 2022-01-13 09:29:35 · 1522 阅读 · 0 评论 -
想要了解epoll必须要从这几点出发。
本文章记录总结学习epoll的几大重点笔记文章目录前言一、为什么再用户态协议栈实现epoll?二、epoll的数据结构1.所有io的总集合 --rbtree2.就绪队列存储可读可写fd的集合。三.epoll的工作环境四.select/poll和epoll的区别五 .从协议栈如何与epoll 通信,什么时候通信,如何通信六.如何加锁七.epoll的API1 int epoll_create(int size)2 int epoll_ctl(int epfd, int op, int fd, struct原创 2022-01-08 10:01:13 · 323 阅读 · 0 评论 -
#define的“趣味”
项目场景:有些同学可能不了解”宏“的编写技巧简单说明一下,反斜线代表该行未结束,会串接下一行。而如果宏里有多过一个语句,就需要用 do { /…/ } while(0) 包裹成单个语句,否则会有如下的问题。问题描述: 我们知道,在预处理之后就会把代码中所有的宏定义编译成对应的代码,仅仅定义数量级别的时候,不会出现问题,但是在宏内定义函数时候一定注意。内部定的一些符号 比如 ;#define M() a(); b()if (cond) M();else c();/* 预处原创 2021-11-17 20:21:20 · 311 阅读 · 0 评论 -
网络io学习笔记(未整理)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、什么是IO复用二、何时用select /epoll?三、为什么Linux网络用epoll 没有aio?三、TCP需要实现哪些?四、Tcp如何保证顺序传输?五 、什么是慢启动和拥塞控制?六 、epoll的设计?总结前言最近回顾了一下 之前项目做到的关于网络通信的知识,关于一些网络IO复用的知识,在以下做了一个笔记提示:以下是本篇文章正文内容,下面案例可供参考一、什么是IO复用IO即为网络I/O,多路即为多个TCP原创 2021-11-12 20:16:10 · 139 阅读 · 0 评论 -
红黑树的用途和实现
一、红黑树用途在哪里?1 map–>2 nginx–>3 定时器–>4 cfs (进程调度的集合 )(操作系统中用红黑树存储的集合)(查找速度快,有顺序)5 内存管理(红黑树的平衡关系);问题:典型的malloc的内存碎片?解答:一块内存对应一个key;key指向的内存的地址 加上长度就是对内存碎片的管理, key value -->查找。问题:红黑树有什么应用呢?1>大多数自平衡BST(self-balancing BST) 库函数都是用红黑树实现的,比如原创 2021-11-08 22:13:54 · 3258 阅读 · 0 评论