Linux服务器
文章平均质量分 50
老了希望
不积硅步,无以至千里
展开
-
c++死锁检测组件
c++死锁检测组件原创 2023-07-03 00:58:08 · 104 阅读 · 0 评论 -
定时器方案
对于服务端来说,驱动服务端逻辑的事件主要有两个,⼀个是⽹络事件,另⼀个是时间事件;在不同框架中,这两种事件有不同的实现⽅式;第⼀种,⽹络事件和时间事件在⼀个线程当中配合使⽤;例如nginx、redis;第⼆种,⽹络事件和时间事件在不同线程当中处理;例如skynet;// 第⼀种 while(!quit) {// 单位:ms int timeout = get_nearest_timer() - now;i < nevent;i ++) {原创 2023-06-21 13:07:22 · 86 阅读 · 0 评论 -
原子操作CAS与锁实现
1.临界资源操作简单/没有系统调用,spinlock。锁被占用,线程走出去,等会再回来查看,有点像非阻塞。锁被占用,线程一直在加锁的地方等待,相当于阻塞。1.操作复杂/有系统调用,mutex。必须cpu指令集支持,比较简单的操作。将执行汇编变成不可分割。原创 2023-06-18 15:38:18 · 60 阅读 · 0 评论 -
异步请求池实现
2.thread_callback 单独接收结果(可以理解为epoll_wait的作用)1.发送请求, 1个io还是多个io=》多个io。fd通过epoll_ctl添加到epoll中。接收结果的线程,如何拿到fd。1.commit 发送请求。解决 请求与接收异步问题。4.destroy 销毁。原创 2023-06-04 23:09:45 · 65 阅读 · 0 评论 -
内存泄漏检测组建与mmap内存共享
内存泄漏检测组建与mmap内存共享原创 2023-06-02 00:55:31 · 182 阅读 · 0 评论 -
内存池的原理与实现
平凡申请内存,造成内存碎片化,分配大空间时 可能分配失败,但是显示内存够用,这个很恐怖。,有可能用到很久才会出现分配失败。不好调试,几个月出现的问题,离不开内存问题。内存池最好不要自己造(大部分工程师没这个能力)懂原理就行。开源内存池 jemalloc tcmalloc(推荐)B 对应,bash,btree。用户空间 堆 栈 mmap。内存池用来管理 堆上空间。直接用链表,超找速度慢。原创 2023-05-31 23:33:58 · 97 阅读 · 0 评论 -
C++线程池
线程池属于基础组件部分(不可独立运行)A cond(等待) B mutex。A func() B 参数。3 公示牌/叫号 管理作用。2 办业务的人 (任务)A 工号 B flag。原创 2023-05-30 01:45:38 · 44 阅读 · 0 评论 -
http服务器
reactor 上实现 http业务原创 2023-03-16 02:09:34 · 59 阅读 · 0 评论 -
手写reactor
reactor 上实现 http业务原创 2023-03-05 00:02:43 · 67 阅读 · 0 评论 -
c++ linux服务器4种模型
C/c++ linux 服务器必走的4种模型原创 2023-03-04 09:58:39 · 119 阅读 · 0 评论 -
手撕红黑树
红黑树性质1每个结点是红的或者黑的2根结点是黑的3每个叶子节点都是黑色的4若果有一个节点是红色的,则他的两个儿子都是黑色的5对给个节点,从该节点到其子节点的所有路径上都有相同的的黑色节点(黑高)`#include <stdio.h>#include <stdlib.h>#include <string.h>#define RED 1#define BLACK 2typedef int KEY_TYPE;//节点定义typedef s原创 2022-05-11 05:12:26 · 69 阅读 · 0 评论