自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 资源 (10)
  • 收藏
  • 关注

原创 LDD命令原理和动态库链接

动态库、链接、LDD、ld-linux.so

2024-10-17 16:44:52 349 1

原创 3588 安装qt编译环境 Cannot mix incompatiable Qt library

原因是qtcreator使用的版本和系统中的qt版本不一致。1、使用命令查看安装了哪些qt库。方法是卸载系统中的库。

2024-03-12 14:03:21 419 1

原创 单例模式的完美写法

c++11 单例模式的完美写法1、单线程使用的单例2、互斥锁单例2.1 new操作符步骤2.2 多线程乱序执行2.3 互斥单例的线程不安全3、c++11 内存屏障单例4、c++11 magic static单例5、可继承的单例模板1、单线程使用的单例#include <iostream>using namespace std;class testsignton{private: testsignton(){}; //构造函数 testsignton(const t

2022-01-17 14:17:03 544

原创 C++ 11try catch 异常处理

C++ 11异常处理1、异常处理2、异常抛出2.1、提前结束函数2.2、栈展开2.3、未捕获异常3、资源回收3.1、临时对象回收3.2、析构函数默认是noexcept4、构造函数初始值的异常5、异常的类层次1、异常处理异常处理(exception handing)机制可以将问题的检测和问题的解决过程分离开。程序的一部分复制检测问题的出现,然后解决问题的任务传递给程序的另外一部分。2、异常抛出程序通过抛出(throw)一条表达式来引发一个异常。被抛出的表达式类型及当前的调用链共同决定了那一段处理代码将

2022-01-08 17:06:13 1873

原创 C++11 noexcept

C++11 noexcept1、noexcept修饰符2、noexcept作用3、noexcept操作符4、noexcept性能4.1 noexcept(false)汇编代码4.2 noexcept汇编代码5、noexcept安全性1、noexcept修饰符C++98中使用throw()进行动态异常声明void except_func() throw(int ,double){ … }在except_func函数后定义了一个动态异常声明throw(int, double)。 该声明指出了exce

2021-12-27 19:02:10 743

原创 C++11 chrono 库

C++11 chrono 图解1 设计一个时间日期库需要哪些要素1.1 时间的计量形式1.2 时间的计量精度1.3 时间点2 chrono库类2.1 三种时钟2.2 多种精度2.3 时间点3 测试代码1 设计一个时间日期库需要哪些要素时间和测距的要素其实差不多。我以从一个地方到另外一个地方为例。1、我需要选择测量工具,卷尺/卡尺/测距仪2、我需要选择什么精度单位, 厘米/毫米/分米3、起始测量起点和测量终点。1.1 时间的计量形式 跑步我们枪响开始秒表计时,以分秒百分秒形式。秒表类似(stea

2021-12-27 11:46:23 814

原创 C++11 nullptr和NULL区别

C++11 nullptr和NULL区别C定义NULLC++的NULLNULL的定义__null是什么nullptr是什么总结C定义NULLc语言中#define NULL ((void*)0)c语言的NLL定义用在C++中会怎样?因为C++是类型安全的,不允许void隐式转换为其他类型的指针。如果将NULL定义为((void)0), 赋值给指针类型的时候,编译会报错。//testnullptr.cpp#include <iostream>using namespace std

2021-12-06 01:08:03 687

原创 C++11 lambda表达式

C++11 lambda表达式1 什么是lambda表达式2 什么是lambda组成部分2.1 []捕获2.1.1 捕获形式:2.1.2 []不捕获任何外部变量:2.1.2 修改非mutable值捕获:2.1.3 重复捕获:2.1.4 混合捕获:2.2 参数列表2.3 mutable2.4 noexcep/throw()3 lambda优点4 lambda可以直接使用无需捕获变量1 什么是lambda表达式是一个闭包;是一个能够在作用域中捕获变量的匿名函数对象。2 什么是lambda组成部分1、

2021-12-04 21:50:24 428

原创 C++11 condition_variable条件变量用法

C++11 condition_variable条件变量用法1 什么是条件变量2 condition_variable类定义2.1 wait函数3 condition_variable用法3.1 资源修改线程步骤3.2 资源等待线程步骤4 代码示例4.1 无需notify场景4.2 正常应用场景14.3 正常应用场景21 什么是条件变量condition_variable是一个类,常和mutex搭配使用。condition_variable类是一个同步原语,可用于阻塞一个线程或同时阻止多个线程,直到另

2021-12-02 00:26:35 4968 1

原创 分布式锁完全手册

分布式锁完全手册定义锁分布式锁分布式锁逻辑分布式锁方案定义锁锁的作用:个人理解,锁的作用就是保障共享资源的一致性和正确性,从而支撑业务系统正常运行。在单进程的系统中,我们采用API级的锁就可以解决上诉问题。而随着分布式系统诞生,传统的API级锁已经无法解决上诉问题, 分布式锁就应运而生。分布式锁分布式锁作为一个服务,提供一致性和正确性访问共享资源的服务。分布式锁逻辑在和谐情况下,操作共享资源如下图有序进行,而实际情况往往不尽如人意。分布式锁方案基于MYSQL基于Redis基于Zo

2021-10-29 16:06:24 81

原创 CMake错误集锦

CMake错误集锦CMake错误集锦1.CMake环境搭建2.常见错误2.1CMakeLists.txt文件名大小写敏2.2 CMakeLists.txt语法错误2.3 CMakeLists.txt命令拼写错误2.4 CMakeLists.txt变量错误2.5 CMakeLists.txt源文件添加错误2.6 CMakeLists.txt变量必须用{}CMake错误集锦1.CMake环境搭建开发环境:ubuntu18.04获取CMake工具包命令:wget https://cmake.org/f

2021-10-29 15:54:45 3107

原创 网络通讯基石:TCP/IP和OSI网络模型

TCP/IP和OSI网络模型区别为什么会有网络模型对应关系数据封装为什么会有网络模型因为**标准化**。车同轨 书同文 行同伦就是秦始皇的最大贡献,有标准才能统一化。如果每个厂商都定义自己的网络模型,对于信息的流转将是巨大灾难。对应关系由国际化标准组织制定的 OSI 模型,本来是最应该在全球范围内推广的网络模型,不过因为 OSI 的设计过于理想不合实际,再加上当时应用 TCP/IP 模型的因特网(Internet)已经覆盖了全球大部分地区。种种原因,导致 OSI 并没有取得市场化的成功,仅仅是

2021-06-03 17:57:40 209

原创 NOSQL基石:CAP-BASE-最终一致性

NOSQL基石:CAP-BASE-最终一致性1、RDBMS的困境2、 什么是CAP原则3、什么BASE理论3.1 强一致性ACID和弱一致性BASE3.2 一个RDBMS系统具有的ACID特性3.3 一个NOSQL具有的BASE特性4、最终一致性4.1 如何实现各种类型的一致性?4.2 一致性变种1、RDBMS的困境RDBMS有以下三大困境:高并发:12306春节抢票、双11等场景下动则亿级并发,而现有RDBMS是能实现千级session。访问一次磁盘10ms, 已mysql的B+树千万级数据为2-

2021-05-13 18:29:11 632

原创 一文读懂REDIS雪崩,击穿,穿透本质

Redis雪崩,击穿,穿透数据获取流程什么是Redis雪崩数据获取流程什么是Redis雪崩

2021-05-12 00:18:42 157

原创 柔性数组

柔性数组1 定长数组2 指针新的改变1 定长数组在日常编码中时常需要缓存接收到的数据,通常不知道数据具体的长度,此时需要预先分配一个足够大的数组。下面例子中,就是我们申请的1024个字节长度的数组。#define MAX_BUFF_LEN 1024struct solid_array{ unsigned int len; char buff[MAX_BUFF_LEN];};上述结构有2个问题:1、如果接收到大量的数据包,数据包的大小都不超过24字节,那么每一个数据包都将有1000个字节

2021-05-07 12:42:25 241

原创 redis数据备份

Redis数据备份redis数据备份思维导出新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入redis数据备份思维导出新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器

2021-05-06 18:50:36 805

原创 一文详解MYSQL数据库事务来龙去脉

MYSQL数据库事务什么是事务什么是ACID并发读取数据可能产生的问题隔离级别什么是事务1、事务是一个最小的不可再分的工作单元;例如:银行转账业务,就是一个最小的业务单元2、事务保证业务逻辑中的多条 SQL 语句要么全部执行,要么全部不执行;例如:淘宝购买生成一件上衣和一天裤子的订单,付款时一定是裤子和衣服的付款都正常完成,这笔订单才算正常完成,不可能出现衣服付款完成,裤子付款失败的情况。3、事务是用来管理 insert,update,delete(DML) 语句,或者说只有DML语句才有事务;

2021-05-06 15:31:07 301 1

原创 一文彻底弄懂大端与小端

一文彻底弄懂大端与小端1. 端模式起源端模式(Endian)起源于《格列佛游记》, 书中根据鸡蛋敲开的方式不同将所有人分为2类,从圆头开始敲的人被归为Big Endian,从尖头开始敲的被归为 Little Endian。小人国的内战就是源于吃鸡蛋是是究竟从大头(Big-Endian)敲开还是从小头(Little-Endian)敲开。2. 大小端定义大端:高地址存低字节,低地址存高字节小端:低地址存低字节,高地址存高字节人类读写数据习惯是大端字节序,大数据先读,小数据后读。所以小端是反人类的方式

2021-04-29 18:13:05 17512 1

python import机制 - .pptx

讲解了python的import机制,从pyc与py区别,python词法分析,import种类等方面分析python的import

2019-10-12

进程调度.pptx

从调度策略,进程优先级,动态补偿,多核负载均衡等方面系统阐述进程调度的原理

2019-10-12

高性能日志文件数据处理分析程序

快速处理文件服务器日志文件,对日志文件进行分析,统计,生成5分钟报表,1小时报表,一天报表,做到每秒处理700M日志文件的能力。

2019-10-12

web框架ppt2

讲解spring框架,介绍Ioc控制反转,ORM思想。SSH架构的优点及分工

2018-09-28

web框架ppt

web框架发展及servlet ,struts2等框架的优点,AOP及EGNL特性

2018-09-28

python分析pcap

利用Python快速分析数据包的完整性,提示数据包缺少步骤,按照源端口目的端口源ip和目的ip进行分流

2017-12-04

数据内存在内存压缩

libz将数据生成文件,然后进行文件压缩,然后读取压缩文件进行序列传输的过程,本库直接由数据到压缩内存,直接序列化传输。较少I/O大大提升效率

2017-12-04

The C10K PROBLEM解决方案 流程图

对于C10K问题进行的解决方案的研究,以流程图的方式展现

2012-09-20

《c++大学教程》AAAAAAAAAA+++

大学生学习C++的入门教程,帮助你快速学习C++,进入C++世界。值得你下载,简单易懂真真学好C++的好书籍工具

2010-05-10

INFORMIX数据库报错信息

INFORMIX 数据库 错误码汉语意思

2010-04-30

空空如也

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

TA关注的人

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