自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 vim-plug c++ go

CentOS, Vim7.4升级到8.1 (服务器) – 亲试可行vim-plug安装C/C++插件如何在 Linux 下利用 Vim 搭建 C/C++ 开发环境?

2022-01-07 19:53:38 979

原创 squidman 代理

export http_proxy=“http://ip:port”export https_proxy=“https://ip:port”

2022-01-07 19:43:39 441

原创 Linux 常用命令

Linux 常用命令命令行删除命令行删除Shell 命令行快速删除光标、快速回到最前面,最后面https://blog.csdn.net/qq_45083975/article/details/105274397

2021-12-09 10:44:07 575

转载 死锁的产生、防止、避免、检测和解除

链接: 死锁的产生、防止、避免、检测和解除.

2021-08-24 15:07:53 111

原创 KMP模式匹配算法

#include <iostream>#include <string>int next[255];void getnext(const std::string &str){ int i = 0; int j = -1; next[0] = -1; while (i < str.size()) { if (j == -1 || str[i] == str[j]) {

2021-08-20 17:18:31 56

转载 数据建模与数据库设计

数据建模与数据库设计数据建模之思想与方法E-R模型Chen方法E-R模型表达方法之Crow’s foot方法二级目录三级目录数据建模之思想与方法E-R模型给出了一组基本概念,用这组概念可以刻画信息世界实体属性:单一属性与复合属性,单值属性和多值属性,可空值属性和非空值属性,导出属性联系:一元联系(当同一实体的不同实例参与一个联系时,为区别各实例参与联系的方式,需要显式指明其角色(role))、二元联系和多元联系。联系的基数有一对一、 一对多、多对多,完全参与联系、部分参与联系关键字/码Che

2021-08-17 09:30:58 456

转载 二叉搜索树、B树、B+树、AVL树、红黑树、Trie树

知乎: 万字大总结,一文搞懂二叉搜索树、B树、B+树、AVL树、红黑树.知乎: 通俗易懂的图文 红黑树,B树,B+树 本质区别及应用场景.Trie并不是平衡树,也不一定非要有序。它主要用于前缀匹配,比如字符串,比如说ip地址,如果字符串长度是固定或者说有限的,那么Trie的深度是可控制的,你可以得到很好的搜索效果,而且插入新数据后不用平衡。不过Trie不像B-tree通用性那么强,你需要针对你自己的实际应用来设计你自己的Trie,比如说你做个字典应用,是用26个字母,还是用unicode来前缀匹配?

2021-08-10 11:11:22 141

转载 数据库管理系统实现技术

数据库管理系统实现技术数据库物理存储磁盘的结构与特性DBMS数据存储与查询实现的基本思想数据库之表-记录与磁盘块的映射数据库之文件组织方法Oracle DB物理存储简介数据库物理存储磁盘的结构与特性盘面:磁道:扇区磁盘读写单位:Sector 簇Cluster/块Block:连续的若干个扇区磁盘数据读写时间–寻道时间(约在1-20ms)–旋转时间(约0-10ms)–传输时间(每4KB页<1ms)物理存取算法考虑的关键:–降低I/O次数–降低排队等待时间–降低寻道/旋转延迟时间:

2021-08-09 15:25:30 1076

转载 数据库语言-SQL

数据库语言-SQL概览SQL语言SQL语言概述利用SQL语言建立数据库利用SQL语言进行简单查询利用SQL语言进行多表联合查询利用SQL语言进行增-删-改利用SQL语言修正与撤销数据库概览SQL语言SQL语言概述SQL语言是集DDL、DML和DCL于一体的数据库语言SQL语言主要由以下9个单词引导的操作语句来构成,但每一种语句都能表达复杂的操作请求DDL语句引导词:Create(建立),Alter(修改),Drop(撤消),模式的定义和删除,包括定义Database,Table,Vie

2021-08-07 12:29:36 807

转载 C++ STL deque容器底层实现原理(深度剖析)

事实上,STL 中每个容器的特性,和它底层的实现机制密切相关,deque 自然也不例外。《C++ STL deque容器》一节中提到,deque 容器擅长在序列的头部和尾部添加或删除元素。本节将介绍 deque 容器的底层实现机制,探究其拥有此特点的原因。想搞清楚 deque 容器的实现机制,需要先了解 deque 容器的存储结构以及 deque 容器迭代器的实现原理。deque容器的存储结构和 vector 容器采用连续的线性空间不同,deque 容器存储数据的空间是由一段一段等长的连续空间构成,各

2021-08-06 16:58:17 727

转载 基本知识与关系模型

基本知识与关系模型第1讲 初步认识数据库系统什么是数据库?什么是数据库系统第1讲 初步认识数据库系统什么是数据库?(1)数据库与信息管理数据库是电子化信息的集合,将信息规范化并使之电子化,形成电子信息‘库’,以便利用计算机对这些信息进行快速有效的存储、检索、统计与管理。(2)数据库与表数据库起源于规范化“表(Table)”的处理。Table: 以按行按列形式组织及展现的数据。Database: 相互之间有关联关系的Table的集合。什么是数据库系统(1)数据库系统的构成—概念层次数

2021-08-03 23:16:14 145

转载 基于c++11的100行实现简单线程池

github: 基于c++11的100行实现简单线程池.链接:线程池-学习笔记.

2021-07-29 16:10:09 118

原创 epoll原理以及优点

epoll原理:首先调用epoll_create时内核在epoll文件系统里建了个file结点;除此之外在内核cache里建立红黑树用于存储以后epoll_ctl传来的socket,当有新的socket连接来时,先遍历红黑书中有没有这个socket存在,如果有就立即返回,没有就插入红黑树,然后给内核中断处理程序注册一个回调函数,每当有事件发生时就通过回调函数。把这些文件描述符放到事先准备好的用来存储就绪事件的链表中,调用epoll_wait时,会把准备就绪的socket拷贝到用户态内存,然后清空准备就绪l

2021-07-23 15:49:42 945

原创 分布式系统中CAP原理

C - Consistent ,一致性。具体是指,操作成功以后,所有的节点,在同一时间,看到的数据都是完全一致的。A - Availability ,可用性。指服务一致可用,在规定的时间内完成响应。P - Partition tolerance ,分区容错性。指分布式系统在遇到某节点或网络分区故障的时候,仍然能够对外提供服务。CAP原理指出,这3个指标不能同时满足,最多只能满足其中的两个。我们之所以使用分布式系统,就是为了在某个节点不可用的情况下,整个服务对外还是可用的,这正是满足P(分区容错性)。

2021-07-23 15:31:17 97

原创 LRU以及实现

LRU以及实现简介实现简介LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。1、新数据插入到链表头部;2、每当缓存命中(即缓存数据被访问),则将数据移到链表头部;3、当链表满的时候,将链表尾部的数据丢弃。实现#ifndef LRU_LRUCACHE_H_ #define LRU_LRUCACHE_H_#include<iostream>#include&

2021-07-23 15:15:08 59

转载 深度分析mmap:是什么 为什么 怎么用 性能总结

链接: 【深入浅出Linux】关于mmap的解析.链接: 深度分析mmap:是什么 为什么 怎么用 性能总结.

2021-07-22 16:35:30 152

转载 用fallocate进行“文件预留“或“文件打洞“

链接: 用fallocate进行"文件预留"或"文件打洞".

2021-07-22 16:09:11 164

转载 NUMA + hwloc

NUMANUMA的诞生背景二级目录三级目录NUMA的诞生背景在NUMA出现之前,CPU朝着高频率的方向发展遇到了天花板,转而向着多核心的方向发展。在一开始,内存控制器还在北桥中,所有CPU对内存的访问都要通过北桥来完成。此时所有CPU访问内存都是“一致的”,如下图所示:这样的架构称为UMA(Uniform Memory Access),直译为“统一内存访问”,这样的架构对软件层面来说非常容易,总线模型保证所有的内存访问是一致的,即每个处理器核心共享相同的内存地址空间。但随着CPU核心数的增加,这样

2021-07-22 11:54:37 823

转载 STL 最大堆、最小堆的应用

链接: STL 最大堆、最小堆的应用.

2021-07-21 17:33:39 106

转载 STL中less和greater的用法

链接: STL中less和greater的用法.

2021-07-21 17:26:23 242

转载 剑指offer 源码

链接: link.

2021-07-21 15:54:52 198

转载 socket 指定网卡

链接: linux 多网卡路由问题_yuanbinquan的专栏-CSDN博客.链接: linux route命令的使用详解.链接: socket绑定指定网卡发包_phymat.nico的专栏-CSDN博客_socket 指定网卡.这个程序用 TCP/IP 协议和外部通信时, 用哪个网卡, 服务端的话是由 bind() 的参数决定的. 你可以把套接字绑定到你指定的 ip 地址和端口上. 如果你的 IP 地址指定的是 htonl(INADDR_ANY), 就由内核去选择 IP 地址. 如果你有这个程序的

2021-07-21 14:42:04 1379

转载 网络分析工具介绍

这里写目录标题netcat(nc)网络状态检测工具ifconfig和ipnetstat和ss网络抓包工具tcpdumpWireshark其他常用工具iftopsarnslookupdstatnetcat(nc)简称nc,被称为“瑞士军刀”,使用nc-h查看帮助文档。ncat许多参数与nc相同,区别则是nc是明文传输,缺乏身份验证,而ncat弥补了这些缺点。主要作用:1、telnet远程登录2、端口扫描3、传输文本信息4、传输文件和目录5、加密传输文件网络状态检测工具ifconfig和i

2021-07-21 14:34:02 1227

原创 map/multimap/unordered_map,set/multiset/unordered_set

map/multimap,set/multiset都为c++中的标准容器,它们的底层都是用红黑树实现的,因此在进行查询,修改,删除等操作上具有很高的效率,可以达到O(logN),都是有序的。那么它们的区别是什么呢?1,其中map/multimap是kay-value结构,意思为它存储的是一对数据,其中kay为关键字信息,而value为相应的键值;而set/multiset为kay结构,它没有相应的value信息。2,由于map/set是用红黑树实现的,所以它不允许kay值相同的数据插入(在后面的例子中

2021-07-21 11:57:17 139

原创 Thrift常见问题以及定位

Thrift常见问题以及定位Aache Thrift最常见的报错信息借助简单的工具或者命令定位网络问题问题定位问题定位:No more data to read.问题定位:Connection refused.问题定位:No route to host.问题定位:Called write on non-open socket.问题定位:Thrfit_EAGAIN (timed out)。问题定位:socket open() error:没有到主机的路由Aache Thrift最常见的报错信息Aache

2021-07-20 17:50:37 1570

原创 thrift源码浅析

thrift浅析简介流程解析idlnonblocking client端流程解析伪代码图不规范,仅为自己梳理代码类图流程图nonblocking Server端流程解析代码一些类的说明简介Thrift是一个轻量级的、独立于语言的软件栈,用于点到点RPC实现。Thrift为数据传输、数据序列化和应用程序级处理提供了清晰的抽象和实现。代码生成系统使用一种简单的定义语言作为输入并生成跨编程语言的代码,这些代码使用抽象堆栈来构建可互操作的RPC客户端和服务器。Thrift使得用不同编程语言编写的程序可以很容

2021-07-15 18:30:42 915

原创 指针*p 二级指针**p 指针引用*&p

#include<iostream>static int s_num=10;void fun(int** p){ std::cout << *p << std::endl; std::cout << **p << std::endl; *p = &s_num;}void fun(int* &p){ std::cout << *p << std::endl; p =

2021-07-08 17:22:48 106

原创 explicit 为什么禁止隐式类型转换

函数重载,入参有很多类型A,B,C,实参是一个整型,若整型都能隐式转换成A,B,C,那么调用该函数的时候具体该调用哪个函数呢?

2021-07-08 16:51:33 123

转载 asio 学习笔记

asio简述Proactor设计模式IO设计模式:Reactor和Proactor对比Proactor and Boost.Asio优势劣势Reactor-Style OperationsThreads and AsioStrands: Use Threads Without Explicit LockingCoroutinesStackless CoroutinesStackful Coroutines参考简述Asio是一个用于网络和低级I/O编程的跨平台c++库,它使用现代c++方法为开发人员提供了

2021-07-07 16:04:49 965

原创 读写锁 c语言版

在看深入理解计算机操作系统这本书时最后一章中看了一个用信号量实现的读写锁,感觉不错,记录一下。读者-写着问题是互斥问题的一个概括。一组并发的线程要访问一个共享对象,例如一个主存中的数据结构,或者一个磁盘上的数据库。有些线程只读对象,而其他的线程只修改对象。修改对象的线程叫做写者。只读对象的线程叫做读者。写者必须拥有对象的独占的额访问,而读者可以和无线多个其他的读者共享对象。一般来说,有无线多个并发的读者和写者。读者-写者交互在现实系统中很常见。例如,一个在线航空预定系统中,允许有无线多个客户同时查看座位分

2021-07-05 10:55:21 786

原创 I/O多路复用 + Reactor线程模型 + 常见的并发网络服务程序设计方案

IO复用5种I/O模型IO复用selectpollepoll工作模式总结参考资料本博客是博主个人学习时的一些记录,不保证是为原创,如有侵权请与我联系。5种I/O模型linux的五种IO模型,分别是:阻塞IO、非阻塞IO、IO复用、信号驱动IO以及异步IO。其中阻塞IO、非阻塞IO、多路复用IO、信号驱动IO都属于同步IO。详解见UNIX网络编程卷1IO复用select,poll,epoll都是IO多路复用的机制。I/O多路复用就是通过一种机制,一个进程可以监视多个描述符,一旦某个描述符就绪(一般

2021-06-29 15:29:18 207

转载 CAS原理分析及ABA问题详解

这里写目录标题compare and swap, CAS概述应用ABA问题实现CAS的缺点转载wait-free lock-free本博客是博主个人学习时的一些记录,不保证是为原创,如有侵权请与我联系。compare and swap, CAS比较并交换(compare and swap, CAS),是原子操作的一种,可用于在多线程编程中实现不被打断的数据交换操作,从而避免多线程同时改写某一数据时由于执行顺序不确定性以及中断的不可预知性产生的数据不一致问题。 该操作通过将内存中的值与指定数据进行比较,当

2021-06-29 12:04:44 461

转载 持久化内存+傲腾持久化内存

持久化内存简介SNIA的编程模型持久化内存对于开发者而言意味着什么?PMDKIntel傲腾技术简介傲腾持久化内存英特尔Optane DC Persistent Memory操作模式说明配置英特尔® 傲腾™ 数据中心级持久内存简介持久化内存(PMEM),也称为非易失性内存(NVM)或内存级存储器(SCM)在下图所示的存储器存储层次结构中提供了一个新的层级,填补了现有层级性能/容量差距。SNIA的编程模型存储网络行业协会(SNIA)和一些技术行业公司衍生了一些标准,包括NVM编程模型,以支持用于持久内

2021-06-28 12:33:56 2039

原创 RDMA+UCX

RMDA+UCXRDMA什么是RDMARDMA的优势哪些网络协议支持RDMA?通过Mellanox OFED使用RDMARDMA编程UCX简介教程重点本博客是博主个人学习时的一些记录,不保证是为原创,如有侵权请与我联系。RDMA什么是RDMA直接内存访问(DMA)是一种设备直接访问主机内存的技术,而不需要CPU的干预。RDMA(远程DMA)是在不中断系统上CPU处理的情况下访问远程机器上的内存的技术。RDMA的优势使用RDMA有以下主要优点:零复制——应用程序可以执行数据传输而不涉及网络软件堆

2021-06-28 11:37:10 3803

原创 计算机学习资料(个人认为比较好的资料)

@计算机学习资料操作系统书籍:深入理解计算机操作系统 现代操作系统视频:链接: 读书会|《深入理解计算机系统》.链接: 2015 CMU 15-213 CSAPP 深入理解计算机系统 课程视频.链接: CSAPP-深入理解计算机系统.后续补充其他方面资料...

2021-06-25 16:48:42 463

原创 uml(统一建模语言) + Plantuml

uml总结UML类图类之间的关系:示例时序图工具UMLUML(Unified Modeling Language,统一建模语言)是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言。UML是面向对象设计的建模工具,独立于任何具体程序设计语言。UML主要有以下作用:为软件系统建立可视化模型。为软件系统建立构件。为软件系统建立文档。类图类的命名尽量应用领域中的术语,应明确、无岐义,以利于相互交流和理解。类的属性、操作中的可见性使用+、#、-分别表示p

2021-06-25 16:30:03 400

原创 设计模式(c++)

prototype(原型)——对象创建型模式意图新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入意图用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象新的改变我们对Markdown编辑器进行了一些功能拓展与

2021-06-25 15:01:03 162

空空如也

空空如也

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

TA关注的人

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