自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 组件1.线程池与性能分析

一个线程池模板的实现采用了信号量sem_t 原子操作唤醒线程任务队列采用了链表

2022-03-28 16:41:10 97

原创 系统检测工具

Linux平台以下总结常用的几个工具,tcpdump、nc、strace、lsof、netstat、vsmstat、ifstat、和mpstattcpdump一款经典的抓包工具,给使用者提供了大量的选项,用以过滤数据包或者定制输出格式。常见的选项总结如下:口-n,使用IP地址表示主机,而不是主机名:使用数字表示端口号,而不是服务名称。口i,指定要监听的网卡接口。“iany”表示抓取所有网卡接口上的数据包。口-v,输出一个稍微详细的信息,例如,显示IP数据包中的TTL和TOS信息。口-t,不打印

2022-03-27 08:52:35 4603

原创 网络编程常用总结

TPC UDP SOCKET IO复用 编程知识1.socket int port = atoi(argv[1]); int sockfd = socket(AF_INET,SOCK_STREAM,0); if(sockfd<0) return -1; struct sockaddr_in addr; memset(&addr, 0, sizeof(struct sockaddr_in)); addr.sin_family = AF_INE

2021-12-30 17:08:41 158

原创 DPDK的虚拟交换机OVs笔记

多队列网卡1.网卡硬件支持队列会通过PCI总线通知CPU(中断)vmxnet3是通过软件代码虚拟出来的硬件2.内核支持多队列网卡本身就支持多队列多队列网卡的接收与发送NAPI和QDiscNAPI接收数据之前,得知道有数据可以接收(通过网卡中断 硬中断,有数据会触发)问题:当触发特别频繁时候如 1s几千次解决方式:(类似epoll用来接收)就是不是来数据就触发去读,而是去通知,收到通知就一直读调用发送函数(send)网卡把数据发送出去是两个过程,中间有个东西叫做队列,这个发送se

2021-09-08 16:38:55 316

原创 GoogleTest

g++ sample1_unittest.cc sample1.cc -o sample -I ./ -lgtest -lpthread -lgtest_mainGooglemocklibgtest.a API实现Googlemock依赖Googletest

2021-08-26 17:14:25 151

原创 Tcp服务器epoll+select+poll多线程多种实现

#include <stdio.h>#include <stdlib.h>#include <string.h>#include <netinet/tcp.h>#include <arpa/inet.h>#include <pthread.h>#include <errno.h>#include <fcntl.h>#include <sys/epoll.h>#include &l

2021-07-08 10:01:51 2498

原创 CMake使用总结

CMake简介CMake 安装教程Linux最新安装方式1.Centos8 为例子最新版本也可以直接去官网下载CMake官网:CMakeV.3.21版本:Windows 选择安装版 Linux则选择已经编译好的压缩包方法一:比较快 但是有些Linux不行Linux解压cmake-3.21.0tar zxvf cmake-3.21.0-rc2-linux-x86_64.tar.gz拷贝到一个安全的目录存放如/usr/local/cmakesudo mv cmake-3.21.0-rc

2021-07-03 17:42:44 211

原创 锁和原子操作CAS的底层实现

锁的由来在多线程或多进程下,有些变量需要共享使用就会产生资源竞争,这个资源称为临界资源然后在CPU切换线程的时候,这个变量会保存在互斥锁自旋锁原子操作#include <stdio.h>#include <pthread.h>#include <unistd.h>#include <sys/mman.h>#define THREAD_SIZE 10int count = 0;pthread_mutex_t mutex;//互斥

2021-07-03 16:09:10 115

原创 Linux Select用法总结

网络 IO,会涉及到两个系统对象,一个是用户空间调用 IO 的进程或者线程,另一个是内核空间的内核系统,比如发生 IO 操作 read 时,它会经历两个阶段:等待数据准备就绪将数据从内核拷贝到进程或者线程中。 因为在以上两个阶段上各有不同的情况,所以出现了多种网络 IO 模型阻塞IO模型...

2021-06-27 14:41:12 603

原创 设计模式1

学习设计模式更重要的是学习模式设计的原则模式设计原则:依赖倒置原则高层模块不应该依赖底层模块,二者都应该依赖抽象 抽象不应该依赖具体实现,具体实现应该依赖抽象 开放封闭原则⼀个类应该对扩展开放,对修改关闭面向接口编程不将变量类型声明为某个特定的具体类,⽽是声明为某个接⼝客户程序⽆需获知对象的具体类型,只需要知道对象所具有的接⼝减少系统中各部分的依赖关系,从⽽实现“⾼内聚、松耦合”的类型设计⽅案封装变化点将稳定点和变化点分离,扩展修改变化点;让稳定点与变化点的实现层次分离单⼀职责

2021-05-26 14:41:54 140

原创 海量数据去重hash和布隆过滤器

类似缓存雪崩和缓存击穿问题参考这篇作者的博客缓存击穿和缓存雪崩等问题一般来说可以使用红黑树来解决问题,但是红黑色对于字符串比较存在缺陷,当字符串过长时红黑树还要匹配字符串,这样效率就会非常慢其中c++标准库(STL)中的set和map结构都是采⽤红⿊树实现的,它增删改查的时间复杂度是O(logn)// 这个是截取 nginx 的红⿊树的实现,这段代码是 insert 操作中的⼀部分,执⾏完这个函数还需要检测插⼊节点后是否平衡(主要是看他的⽗节点是否也是红⾊节点)// 调⽤ ngx_rbtr.

2021-05-19 15:17:32 117

原创 B-树与B+树

B-树与B+树性质一颗M阶B树T,满足以下条件每个结点至多拥有M课子树根结点至少拥有两颗子树除了根结点以外,其余每个分支结点至少拥有M/2课子树所有的叶结点都在同一层上有k课子树的分支结点则存在k-1个关键字,关键字按照递增顺序进行排序关键字数量满足ceil(M/2)-1 <= n <= M-1一般用度数degree定义B树 , 最大度数为t 则为2t阶B树#include <stdio.h>#include <stdlib.h>#includ

2021-05-15 18:09:59 56

原创 二叉树与红黑树

二叉排序树(Binary Sort Tree)又称二叉查找树(Binary Search Tree),亦称二叉搜索树。是数据结构中的一类。优点:在一般情况下,查询效率比链表结构要高一棵空树,或者是具有下列性质的二叉树:(1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;(2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值;(3)左、右子树也分别为二叉排序树;(4)没有键值相等的结点。缺点:插入数据可能会不平衡 一直在左或右子树插入,导致深度很高,这样效率变低节点在左

2021-05-15 12:58:51 160

原创 链表算法操作

这里10个问题参考即可这位作者博客即可,因为有些代码是java ,在这里改成C++版本作者:辰砂出处:https://www.cnblogs.com/tojian/p/10055036.html//链表结构体struct ListNode { int val; ListNode *next = nullptr;}1.链表的倒数第K个结点问题描述:输入一个链表,输出该链表中倒数第k个结点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾结点是倒数第1个结点。例如一个链表有

2021-05-10 22:23:21 308

原创 查找与排序

1.重要的排序算法总共11种排序但以下的排序用的较多,需要掌握,手撕代码希尔排序1.一种充分利用插入排序的特点的排序1.元素少,排序效率高2.数组接近有序效率高流程1.先取增量(增量递减)2.根据增量分组样本N个进行,根据gap分成多组 一层for循环a[0],a[0+gap],a[0+2gap] +…a[1],a[1+gap],a[1+2gap] +…a[2],a[2+gap]3.对每组进行,组内使用插入排序(两层for)4.重复上述步骤 直到gap=1 (gap=1其实就

2021-05-09 14:59:42 203

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除