自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(199)
  • 资源 (5)
  • 收藏
  • 关注

原创 大数加减乘除

https://zhuanlan.zhihu.com/p/344996431

2021-08-27 14:24:35 230

原创 进制转换....................

10进制转16进制#include<iostream>#include<string>using namespace std;// 十进制转16进制int main(){ long x; // 输入的数字 int r=0; // 余数 string res=""; // 输出的结果 cin>>x; if(x==0) { cout<<"0x0"<<endl;

2021-07-13 21:48:11 77

原创 输入输出练习

1、A+B2、A+B3、A+B4、A+B5、A+B6、A+B7、A+B8、字符串排序9、字符串排序10、字符串排序(3)11、[编程题]自测本地通过提交为0...

2021-07-12 22:15:42 302

原创 Kubernetes核心组件运行机制

Kubernetes API Server 其核心功能是提供Kubernetes各类资源对象(如Pod、RC、Service等)的增、删、改、查及Watch等HTTP Rest接口,成为集群内各个功能模块之间数据交互和通信的中心枢纽,是整个系统的数据总线和数据中心。此外,还提供以下功能:是集群管理的API入口 是资源配额控制的入口 提供给了完备的集群安全机制Kubernetes的设计者如何最大程度保证API Server的性能在API Server源码中使用协程(Corout...

2021-06-23 15:05:46 426 1

原创 Docker核心技术及实现原理

Linux容器最基础的两种技术:Namespace和Cgroups容器的的本质是一种特殊的进程Namespace的作用是”隔离“

2021-06-17 16:05:06 622 1

原创 十大排序算法

#include <iostream>#include <vector>#include <map>using namespace std;// 1.bubble sortvoid bubbleSort(vector<int> &v){ for (int i = 0; i < v.size() - 1; i++) { for (int j = 0; j < v.size() - i - 1; .

2021-06-11 21:55:32 103 2

原创 树的前中后非递归以及dfs、bfs

#include <iostream>#include <stack>#include <queue>using namespace std;struct TreeNode{ int data; TreeNode *left = nullptr; TreeNode *right = nullptr;};//前序遍历void preOrderVisit(TreeNode *root){ if (root == null.

2021-06-11 21:53:56 95

原创 刷题常用 sort lambda

1、int compare (const void * a, const void * b){ return ( *(int*)a - *(int*)b );} qsort (values, 6, sizeof(int), compare);

2020-07-30 09:10:13 211

转载 并查集UnionFindSet

class UnionFindSet {public: UnionFindSet(int n) { ranks_ = vector<int>(n + 1, 0); parents_ = vector<int>(n + 1, 0); for (int i = 0; i < parents_.size(); ++i) parents_.

2021-08-30 21:11:23 176

原创 Hash冲突

Hash表散列函数:一个把查找表中的关键字映射层该关键字对应的地址的函数,记为Hash(key) = Addr, 散列 函数可能会把两个或两个以上的不同关键字映射到同一地址,称这种情况为“冲突”,这些发生碰撞的不同 关键字称为同义词。理想情况下,对散列表进行查找的时间复杂度为O(1),即与表中元素个数无关。散列函数的构造方法直接定址法 H(key) = a*key + b这种方法计算最简单,并且不会产生冲突。它适合关键字的分布基本连续的情况,若关键字分布不连续,空位较多,将造成存储空间的

2021-08-26 23:16:34 210

原创 百度一面 手写hash

#include <iostream>#include <vector>#include <string>#include <algorithm>using namespace std;class hashtable { friend ostream& operator<<(ostream &out, const hashtable& h);public: void insert(int ke.

2021-08-21 09:37:51 187

原创 2021-08-20 图 排序算法复习

图排序算法复习冒泡排序void bubbleSort1(vector<int> &v){ // 因为n-1个元素排好序了,第n个元素自然就排好序了 for (int i = 0; i < v.size() - 1; i++) { // 每次都确定一个最大的元素 for (int j = 0; j < v.size() - i - 1; j++)

2021-08-20 10:12:48 256

原创 生产者消费者模型 (多线程C实现)

#include <pthread.h>#include <stdio.h>#include <stdlib.h>#define NUM_OF_TASKS 3#define MAX_TASK_QUEUE 11char tasklist[MAX_TASK_QUEUE]="ABCDEFGHIJ";int head = 0;int tail = 0;int quit = 0;pthread_mutex_t g_task_lock;pthread_..

2021-08-05 10:11:22 491

原创 CAS 无锁队列

cas实现https://www.cnblogs.com/shines77/p/4209871.html无锁队列https://blog.csdn.net/yand789/article/details/27545135

2021-08-03 17:20:46 114

原创 如何测试操作系统是大端还是小端?

#include <stdio.h>int fun1(){ union test { int i; char c; }; union test t; t.i = 1; return (t.c==1);}int main(){ printf("%d\n",fun1()); return 0;}

2021-08-03 15:00:30 140

原创 PV 信号量 生产者消费者模型 读者写者模型 哲学家就餐问题

生产者消费者模型// 生产者消费者模型semaphore mutex=1; // 用于多进程互斥访问缓冲区semaphore empty=n; // 用于生产者判断,buffer是否为空位置可以放置数据semaphore full=0; // 用于消费者判断缓冲区是否有数据可以消费producer() { while(1) { // produce an item in nexp; // 生产一个数据 p(empty); // 判断buffer是

2021-08-01 14:31:10 153

原创 MTU、Keepalive

路径最大传输单元(MTU)是指经过两台主机之间路径的所有网络报文段中最大传输单元的最小值。知道MTU后可以帮助一些像TCP这类的协议避免分片(主要通过设置DF位)。从而减少一次内核中TCP协议栈从传输层向下的一次拷贝。(这个值在TCP连接建立的时候可以确定)TCP 保活机制(keepalive)(这个问题在面试中多次被问)如果在一段时间内(称为保活时间, keepalive time)内连接处于非活动状态,开启保活功能的一端将向对方发送一个保活探测报文。如果发送端没有收到响应报文,那么经过一

2021-08-01 09:34:59 90

转载 内存管理 - -- - - --

虚拟内存内存分段内存分页段页式内存管理Linux内存管理虚拟内存:单片机的CPU是直接操作内存的物理地址缺点:无法同时在内存中运行多个程序,因为后来的程序会覆盖之前的程序问题的关键在于两个程序都使用的是绝对物理地址如何解决?操作系统会提供一种机制,将不同进程的虚拟地址和不同内存的物理地址映射起来程序在访问虚拟地址的时候,由操作系统转换成不同的物理地址,这样不同的进程运行的时候,写入的是不同的物理地址,这样就不会冲突了程序所使用的内存地址叫做虚拟内.

2021-07-29 23:38:52 197

转载 2021-07-29 负载均衡

平时我们常用的有四层负载均衡和七层负载均衡,四层的负载均衡是基于IP和端口实现的,七层的负载均衡是在四层的基础上,基于URL等信息实现。四层负载均衡LVS:重量级软件,本身不支持正则表达式,部署起来比较麻烦,但是性能高,应用范围广,一般的大型互联网公司都有用到。HAProxy:轻量级软件,支持的负载均衡策略非常多,较灵活。Nginx:轻量级软件,支持的协议少(HTTP、HTTPS和Email协议),对于Session支持不友好。¶ 七层负载均衡HAProxy:全面支持七层代理,灵

2021-07-29 20:30:25 86

原创 Linux内核之进程管理

进程的组成: •进程控制块(PCB):进程描述信息、进程控制、管理信息、资源分配清单和 处理机相关信息 •程序段:能被调度程序调度到CPU执⾏的程序代码段 •数据段:原始数据和执⾏过程中产⽣的数据•为了减少程序在并发执⾏时所付出的时空开销,提供操作系统的并发性能,⽽引⼊ 线程 线程由 •线程ID、•程序计数器、•寄存器集合•堆栈组成 线程是进程中的⼀个实体,是被系统独⽴调度和分派的基本单位,线程⾃⼰不拥有 系统资源,只拥有⼀点在运⾏中必不可少的资源, 但它可与..

2021-07-25 16:47:23 786

原创 mysql相关整理

GROUP BY 语句可结合一些聚合函数来使用(用于将每行数据根据某个字段进行分组)如:统计 access_log 各个 site_id 的访问量:SELECT site_id, SUM(access_log.count) AS numsFROM access_log GROUP BY site_id;HAVING 子句在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与聚合函数一起使用。HAVING 子句可以让我们筛选分组后的各组数据。如:查找总访问量大于..

2021-07-19 12:13:21 118 3

原创 协程的好处

协程的好处1、最大优势就是协程极高的执行效率。因为子程序切换不是线程切换,而是由程序自身控制,因此,没有线程切换的开销,和多线程比,线程数量越多,协程的性能优势就越明显。2、不需要多线程的锁机制,因为只有一个线程,也不存在同时写变量冲突,在协程中控制共享资源不加锁,只需要判断状态就好了,所以执行效率比多线程高很多。因为协程是一个线程执行,那怎么利用多核CPU呢?最简单的方法是多进程+协程,既充分利用多核,又充分发挥协程的高效率,可获得极高的性能。其他一些重要的点:协程并没有增加线..

2021-07-19 10:40:52 2100

原创 muduo中的Buffer和线程池设计

muduo中的buffer指的是一般的应用层缓冲区,Buffer特指muduo::net::Buffer classmuduo的底层缓冲区使用的容器是vector,这里和实验室小伙伴讨论使用vector作为底层容器,开销会比较大,因为当容量不足时,会有大量拷贝开销。使用deque效率可能更高。...

2021-07-13 10:36:52 221

原创 2021-07-06常见面试题整理

http和https的区别?安全,HTTPS是身披SSL外壳的HTTP,利用SSL/TLS建立全信道,加密数据包http和https的区别http和https区别(详细)C++虚函数的原理https://leetcode-cn.com/leetbook/read/cpp-interview-highlights/efvzbt/C++智能指针函数结束时自动释放内存空间,不需要手动释放内存空间std::auto_ptr 具有排他所有权的性质,意思是赋值或者复制都会改变所有权..

2021-07-06 14:06:09 734

转载 Kubernetes容器持久化存储

PV:持久化存储卷PVC:Pod所希望使用的持久化存储的属性容器的Volume,就是将一个宿主机上的目录,跟一个容器里的目录绑定挂载在一起如上图:PVC描述的是Pod想要使用的持久化存储的属性,比如存储的大小、读写权限等。 PV描述的是一个具体的Volume的属性,比如Volume的类型、挂载目录、远程存储服务器地址等 StorageClass的作用是充当PV模板,只有同属于一个StorageClass的PV和PVC才可以绑定在一起。以及指定PV的存储插件(Provisioner)

2021-06-28 14:36:33 275

原创 2021-06-25 Kubernetes作业管理

Docker容器的本质:Namespace做隔离,Cgroups做限制,rootfs做文件系统,Poid是Kubernetes中的最小调度单位。Kubernets是未来云计算系统中的操作系统,而容器是其中的进程。Pod是一组共享了某些资源的容器,Pod里的所有容器,共享的是同一个Network Namespace,并且可以声明同一个Volume。凡是调度、网络、存储以及安全相关的属性,基本上是Pod级别的。凡是与容器的Linux Namespace相关的属性,也一定是Pod级别的。Nod

2021-06-27 13:50:59 111

转载 计算机网络面试整理

OSI七层模型:应用层、会话层、表示层、传输层、网络层、链路层、物理层TCP/IP四层模型:应用层、传输层、网络层、数据链路层(对应网络接口及硬件层)传输层作用:分用和复用的概念。该层对应于OSI参考模型的传输层,为上层实体提供源端到对端主机的通信功能。传输层的两个主要协议:传输层控制协议(TCP)和用户数据报协议(UDP)。其中面向连接的TCP协议保证了数据的传输可靠性,面向无连接的UDP协议能够实现数据包简单、快速传输;(TCP/IP)各层对应的主要协议:应用层:HTTP, FTP, N

2021-06-23 20:56:59 73

转载 Kubernetes集群部署

为什么不推荐容器化kubelet?kubelet除了跟容器打交道外,kubelet在配置容器网络、管理容器数据卷时,都需要直接操作宿主机。kubelet容器可以通过不开启Network Namespace(即Docker的host network模式)的方式,直接共享宿主机的网络栈。可是让kubelet隔着容器的Mount Namespace 和 文件系统,操作宿主机的文件系统就很困难了。Kubeadm init的工作流程:Linux内核的版本是否是3.10以上 Linux Cgroup.

2021-06-23 20:48:39 87

原创 2021-06-21 容器技术入门1

Docker提供了一种打包机制,这种机制打包了应用运行所需要的整个操作系统,从而保证了本地环境和云端环境的高度一致。避免了用户通过”试错“来匹配两种不同运行环境之间差异的痛苦过程。...

2021-06-21 22:23:43 103

原创 分布式键值存储系统-etcd

各模块功能:HTTP Server:用于处理用户发送的API请求以及其他etcd节点的同步与心跳信息请求 Store:用于处理etcd支持的各类功能的事务,包括数据索引、节点状态变更、监控与反馈、事件处理与执行等等,是etcd对用户提供的大多数API功能的具体实现 Raft:Raft强一致性算法的具体实现,是etcd的核心 WAL:Write Ahead Log(预写式日志),是etcd的数据存储方式。除了在内存中存有所有数据的状态以及节点的索引以外,etcd就通过WAL进行持久化存储。WAL..

2021-06-21 20:41:45 486 1

原创 内存泄漏-由于基类的析构函数没有声明为虚函数而导致的内存泄露

如上图所示,基类的析构函数没有声明为虚函数,析构的时候,基类指针只会调用基类的析构函数,而不会调用派生类的析构函数,从而导致内存泄漏如上图所示,声明为virtual后,对象析构时会调用基类和派生类的析构函数...

2021-05-13 20:39:59 348

原创 循环排序

2021-05-12 21:44:04 97

原创 数据分布算法

Round Robin、虚拟桶、一致性hashRound Robin:Round Robin 是指轮询调度算法。算法首先对存储节点进行0到n-1编号,然后对数据的key值做hash后再对存储节点取模,得到的结果即为存储节点的编号。在key值比较分散的情况下,均匀性可以得到和好的保证,但如果存储节点变更,那么原来的所有节点都会受到影响。虚拟桶:虚拟桶算法是在存储记录和物理存储节点之间引入了一个虚拟桶层,所有的记录先通过hash函数映射到对应的虚拟桶上,虚拟桶再通过查表的方式映射到实际的物理存储

2021-04-13 21:35:53 295

原创 LSM-Tree

LSM-Tree(The Log Structured Merge Tree) 是指日志结构的合并树,是针对写入速度瓶颈而提出的一种存储策略。HBase、LevelDB、RocksDB、Cassandra等系统中都有用到。日志结构思想:将整个磁盘看成一个日志文件,在日志文件中存储持久性数据,针对数据每次指挥追加到日志尾部,将众多小文件合并在一起,使得堆日志分散性的存储转换成了大批量的传输,充分降低磁盘寻道的开销,提高了系统的读取效率。借鉴日志数据的写入操作都为追加操作,提出了一种批量持久化的数据

2021-04-13 21:03:31 203

原创 完美转发 左值 右值

#include <iostream>using namespace std;void fun(int& x) { cout<<"call lvalue ref"<<endl; }void fun(int&& x) { cout<<"call rvalue ref"<<endl; }void fun(const int& x) { cout<<"call const lvalue ref"&..

2021-04-13 15:07:33 81

原创 在main函数前和main函数后执行某个函数

#include <iostream>using namespace std;class Debug{public: Debug() { cout << "before main!" << endl; }};Debug t;int main(){ cout << "main" << endl; return 0;}// #include <iostre.

2021-04-13 11:24:30 69

原创 CMAKE浅尝

CMake的安装及其简单使用_cm_cyj_1116的博客-CSDN博客_cmake 安装cmake的使用最近在面经中有看到,主要就是在写cmakefilelists文件,我这里以编译一个hello.c文件为例子写好cmakelists文件后,在build文件夹中执行cmake ..会自动生成makefile文件在运行make命令就可编译整个工程...

2021-04-10 10:39:24 63

原创 c++中几种针

share_ptr 要求实现auto_ptr

2021-04-01 15:05:13 112

原创 几种树

B+ B 红黑树 LSMTree 平衡树 堆 查找

2021-04-01 14:54:26 85

原创 C++的split,刷题中会用到

#include <sstream>#include <istream>using namespace std;int main(){ istringstream iss("/a//.b/c../d"); string buf; while(getline(iss, buf, '/')) { cout<<buf<<'\t'; } cout<<endl; system("p.

2021-04-01 09:24:47 120

随机过程.zip

随机过程

2021-07-23

Unix内核11111111.zip

Unix内核11111111

2021-07-22

linux课件

之前上课时老师用的Linux,里面设计shell编程,以及Linux的一些基础知识,实践性很强

2020-10-30

C++PrimerSrc.zip

C++PrimerSrc源码, 课后习题以及每章的一些例子代码,还有课后习题的答案解析。

2020-06-29

解决多线程编程中的同步互斥问题

解决多线程编程中的同步互斥问题

2016-12-03

空空如也

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

TA关注的人

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