自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

董哥的黑板报

永远年轻,永远奋斗!

  • 博客(65)
  • 资源 (43)
  • 收藏
  • 关注

原创 muduo网络库:17---高效的多线程日志之(多线程异步日志、其他方案)

本文内容衔接于前一篇文章(日志概述、功能需求、性能需求):https://blog.csdn.net/qq_41453285/article/details/105091022一、多线程中的日志安全多线程程序对日志库提出了新的需求:线程安全。即多个线程可以并发写日志,两个线程的日志消息不会出现交织 线程安全不难办到, 简单的办法是: 用一个全局mutex保护IO 或者每个线程单独写一...

2020-03-25 20:05:29 1523

原创 muduo网络库:16---高效的多线程日志之(日志概述、功能需求、性能需求)

一、日志概述“日志(logging)”有两个意思: 诊断日志(diagnostic log):即log4j、logback、slf4j、glog、 g2log、log4cxx、log4cpp、log4cplus、Pantheios、ezlogger等常用日志库 提供的日志功能 交易日志(transaction log):即数据库的write-ahead log(http://en.wi...

2020-03-25 12:16:41 1310

原创 muduo网络库:15---C++多线程编程精要之(RAII与fork()、多线程与fork()、多线程与signal)

本文内容衔接于前一篇文章(多线程与IO、用RAII包装文件描述符):https://blog.csdn.net/qq_41453285/article/details/105056920

2020-03-25 08:45:59 1212

原创 muduo网络库:14---C++多线程编程精要之(多线程与IO、用RAII包装文件描述符)

本文内容衔接于前一篇文章(线程的创建与销毁的守则):https://blog.csdn.net/qq_41453285/article/details/105047683、总结本专题未完结,参阅下一篇文章(RAII与fork()、多线程与fork()、多线程与signal):https://blog.csdn.net/qq_41453285/article/details/105056...

2020-03-24 22:41:29 1065

原创 muduo网络库:13---C++多线程编程精要之(线程的创建与销毁的守则)

本文内容衔接于前一篇文章(C/C++系统库的线程安全性):https://blog.csdn.net/qq_41453285/article/details/105047602、总结本专题未完结,参阅下一篇文章():

2020-03-24 21:16:54 1071

原创 muduo网络库:12---C++多线程编程精要之(C/C++系统库的线程安全性)

本文内容衔接于前一篇文章(基本线程原语的选用、Linux上的线程标识、善用__thread关键字、Linux新增系统调用的启示):https://blog.csdn.net/qq_41453285/article/details/105019401一、C/C++的线程库原先的C/C++标准(C89/C99/C++03)并没有涉及线程,新版的C/C++标准(C11和C++11)规定了程序在多线...

2020-03-23 20:23:48 972

原创 muduo网络库:11---C++多线程编程精要之(基本线程原语的选用、Linux上的线程标识、善用__thread关键字、Linux新增系统调用的启示)

一、基本线程原语的选用我认为用C/C++编写跨平台(只针对POSIX操作系统)的多线程程序不是普遍的需求,因此我们只谈现代Linux(2004年Linux 2.6内核发布之后,NPTL线程库)下的多线程编程 POSIX threads的函数有110多个, 真正常用的不过十几个。而且在C++程序中通常会有更为易用的wrapper,不会直接调用Pthreads函数。这11个最基本的Pthread...

2020-03-23 14:13:40 916

原创 muduo网络库:10---多线程服务器之(“多线程服务器的适用场合”的例释与答疑)

本文内容衔接于前一篇文章(多线程服务器的适用场合):https://blog.csdn.net/qq_41453285/article/details/105005052

2020-03-21 22:30:15 1043

原创 muduo网络库:09---多线程服务器之(单线程、多线程服务器的适用场合)

本文内容衔接于前一篇文章(进程间通信只用TCP):https://blog.csdn.net/qq_41453285/article/details/104997453一、服务器开发概述“服务器开发”包罗万象,用一句话形容是:跑在多核机器上的Linux用户态的没有用户界面的长期运行(例如wget是不长期运行,httpd是长期运行的)的网络应用程序,通常是分布式系统的组成部件并发处理...

2020-03-21 14:09:30 1220

原创 muduo网络库:08---多线程服务器之(进程间通信只用TCP)

一、Linux下IPC、同步原语的种类Linux下进程间通信(IPC)的方式数不胜数,光《UNIX网络编程》列出的就有:匿名管道(pipe)、具名管道(FIFO)、POSIX消息队列、共享内存、信号(signals)等等,更不必说Sockets了 同步原语 (synchronization primitives)也很多,如互斥器(mutex)、条件变量 (condition variable...

2020-03-21 10:27:50 1076

原创 muduo网络库:07---多线程服务器之(单线程服务器、多线程服务器的常用编程模型)

一、进程与线程进程进程(process)”是操作里最重要的两个概念之一(另一个是文件),粗略地讲,一个进程是“内存中正在运行的程序” 每个进程有自己独立的地址空间(address space),“在同一个进程”还是“不在同一个进程”是系统功能划分的重要决策点。《Erlang程序设计》[ERL]把“进程”比喻为“人”,我觉得十分精当,为我们提供了一个思考的框架 每个人有自己的记忆(me...

2020-03-21 09:53:18 1077 1

原创 muduo网络库:06---线程同步精要之(借shared_ptr实现copy-on-write)

本文内容衔接于前一篇文章(线程安全的Singleton实现):https://blog.csdn.net/qq_41453285/article/details/104875213

2020-03-21 09:27:40 1225 2

原创 C++:67---iterator头文件中的迭代器(插入迭代器、流迭代器、反向迭代器、移动迭代器)

除了每个容器有自己的迭代器之外,标准库在头文件iterator中还定义了额外几种迭代器 这些迭代器包括: 插入迭代器(insert iterator):这些迭代器被绑定到一个容器上,可用来向容器插入元素 流迭代器(stream iterator):这些迭代器被绑定到输入或输出流上,可用来遍历所有关联的IO流 反向迭代器(reverse iterator):这些迭代器向后而不是向...

2020-03-20 11:05:43 1247

原创 muduo网络库:05---线程同步精要之(线程安全的Singleton实现)

本文内容衔接于前一篇文章(封装MutexLock、MutexLockGuard、Condition):https://blog.csdn.net/qq_41453285/article/details/104875213待续

2020-03-18 22:53:24 896

原创 C++:76---C++11标准(Range-Based for循环:基于范围的循环)

一、Range-Based for循环概述C++引入了一种崭新的for循环形式,可以逐一迭代某个给定的区间、数组、集合内的每一个元素。类似于其他编程语言的foreach循环二、基本格式decl是给定的coll集合中的每个元素的声明三、基本使用例如:int arr[]{ 1,2,3,4,5 };for (int i : arr) { std::cout <&...

2020-03-18 17:26:24 1685

原创 C++:75---C++11标准(一致性初始化、初值列:initializer_list)

一、列表初始化/一致性初始化设计的目的: 在C++11之前,如何初始化一个变量或对象的概念比较混淆。初始化的场景可以发生在:小括号、大括号或赋值操作符中 C++11引入了“列表初始化/一致性初始化”,意思为:面对任何初始化动作,你可以使用相同语法,就是使用大括号 例如下面的都是正确的:int units_sold = 0;int units_sold = { 0 };in...

2020-03-18 16:24:58 1513

原创 C++:74---C++11标准(新的数据类型、template表达式内的空格、nullptr、std::nullptr_t)

本文介绍一些C++的两个新特性,它们虽然微小,但对你的编程十分重要一、Template表达式内的空格C++11标准之前建议在“在两个template表达式的闭符之间放一个空格”的要求已经过时了 例如:vector<list<int> >; //C++11之前vector<list<int>>; //C++11二、nullptr...

2020-03-18 15:43:17 6944

原创 C++(标准库):01---C++标准的历史

一、C++标准的历史C++标准初始于1989年,由国际标准化组织(ISO)推动。ISO其实是一个大群国家标准组织,成员机构包括美国的ANSI 下面是C++标准的发展历程: ①C++98:于1998年批准,是第一份C++标准规则 官方名称是Inforamtion Trchnology-Programming Languages-C++,文档编号ISO/IEC 14882:1998 ...

2020-03-18 15:21:25 1376

原创 Effective C++条款55:杂项讨论之(让自己熟悉Boost)

待续

2020-03-18 15:00:55 669

原创 Effective C++条款54:杂项讨论之(让自己熟悉包括TR1在内的标准程序库)

待续

2020-03-18 15:00:50 680

原创 Effective C++条款53:杂项讨论之(不要轻忽编译器的警告)

一、忽略编译器的警告是一个不好的行为许多程序员习惯性的忽略编译器的警告,他们认为,如果问题很严重,编译器应该报出一个错误而非警告,于是他们习惯性的忽略了编译器的警告 这是不正确的行为二、来看一个案例现在我们有下面的继承体系:class B{public: virtual void f()const;};class D :public B{public: ...

2020-03-18 15:00:41 729

原创 Effective C++条款52:定制new和delete之(写了placement new也要写placement delete)

placement new和placement delete在C++中可能并不常用,但是你需要了解它们 关于placement new语法可以参阅:https://blog.csdn.net/qq_41453285/article/details/104690501一、正常签名式的new和delete对于使用new来创建对象时,其可能在两个地方会抛出异常: ①当在调用new()时,ne...

2020-03-18 15:00:28 713

原创 Effective C++条款51:定制new和delete之(编写new和delete时需固守常规)

条款50介绍了为何要重载operator new和operator delete,本条款用来讲述重载operator new和operator delete时所要遵守的规则一、operator new所要遵守的规则operator new的一般规则为: 必须拥有正确的返回值:如果申请成功就返回指针指向于那块内存。如果不足就抛出bad_alloc异常(未设置new-handler的情况下)...

2020-03-17 21:18:16 686

原创 Effective C++条款50:定制new和delete之(了解new和delete的合理替换时机)

一、重载operator new和operator delete的理由我们可以重载编译器的operator new和operator delete,下面给出了三个理由①用来检测运用上的错误下面是一些常见错误: new分配内存,但是没有delete掉,导致内存泄漏 对new所分配的内存,进行多次delete那么会导致不明确的行为 上面这些错误都是可以检测出来的 还有一种...

2020-03-16 21:36:43 748

原创 Effective C++条款49:定制new和delete之(了解new-handler的行为)

一、set_new_handler()函数set_new_handler()函数语法介绍,参阅:https://blog.csdn.net/qq_41453285/article/details/103553037 当opertor new分配内存时内存不足,它会抛出异常 我们可以在使用operator new之前,使用set_new_handler()绑定一个错误处理函数,这个错误处理函...

2020-03-16 20:22:45 788

原创 Effective C++条款47:模板与泛型编程之(请使用traits classes表现类型信息)

一、traits机制 Traits机制可以参阅:https://blog.csdn.net/qq_41453285/article/details/103540156 以迭代器为演示案例标准库有一个advance()算法,该算法用来将迭代器移动给定距离,其第一个参数为迭代器,第二个参数为要移动的距离 我们知道迭代器分为5种: Input Iterator:这种迭代器所指的对象,...

2020-03-16 16:48:11 741

原创 Effective C++条款46:模板与泛型编程之(需要类型转换时请为模板定义非成员函数)

待续

2020-03-16 15:55:43 726

原创 Effective C++条款45:模板与泛型编程之(运用成员函数模板接受所有兼容类型)

待续

2020-03-16 10:55:27 689

原创 Effective C++条款44:模板与泛型编程之(将与参数无关的代码抽离templates)

待续

2020-03-15 21:46:53 755

原创 muduo网络库:04---线程同步精要之(封装MutexLock、MutexLockGuard、Condition)

本文内容衔接于前一篇文章(互斥器、条件变量、读写锁、信号量、sleep):https://blog.csdn.net/qq_41453285/article/details/104859230 MutexLock、MutexLockGuard、Condition等class完整代码在muduo/base中都可以找到,这几个class都不允许拷贝构造和赋值一、MutexLock、MutexLoc...

2020-03-15 20:55:44 1062

原创 muduo网络库:03---线程同步精要之(互斥器、条件变量、读写锁、信号量、sleep)

并发编程有两种基本模型:一种是message passing,另一种是shared memory 在分布式系统中,运行在多台机器上的多个进程的并行编程只有一种实用模型:message passing 在单机上,我们也可以照搬message passing作为多个进程的并发模型 这样整个分布式系统的架构的一致性很强,扩容(scale out)起来也较容易 在多线程编程中, messag...

2020-03-15 11:10:44 1342

原创 Effective C++条款43:模板与泛型编程之(学习处理模板化基类内的名称)

待续

2020-03-14 10:38:14 650

原创 Effective C++条款42:模板与泛型编程之(了解typenam的双重意义)

一、意义①意义①:typename可以在template中声明类型参数 在template中声明类型参数时,template和class是等价的,两者都可以 例如://两者是等价的template<class T> class Widget;template<typename T> class Widget;二、意义②意义②:可以用来声明某种类型...

2020-03-13 21:56:29 724

原创 Effective C++条款41:模板与泛型编程之(了解隐式接口和编译期多态)

待续

2020-03-13 20:45:55 666

原创 muduo网络库:02---线程安全的对象生命期管理之(以智能指针替换原始指针:内含Observer模式、对象池(弱回调)等演示案例)

本文内容衔接于前一篇文章(多线程中对象的构造与析构):https://blog.csdn.net/qq_41453285/article/details/104720277一、线程安全的Observer有多难一个动态创建的对象是否还活着,光看指针是看不出来的(引用也一样看不出来): 指针就是指向了一块内存,这块内存上的对象如果已经销毁,那么就根本不能访问(《C++编程规范》条款99)(就...

2020-03-13 17:28:46 1441 1

原创 Effective C++条款40:继承与面向对象之(明智而审慎地使用多重继承)

一、多重继承中,接口调用的歧义性当一个类继承自两个基类时,两个基类包含有相同的名称(如函数、typedef等),那么调用时就会产生歧义性演示案例class BorrowableItem {public: void checkOut();};class ElectronicGadget {private: bool checkOut()const; //注意,...

2020-03-13 15:48:38 747

原创 Effective C++条款39:继承与面向对象之(明智而审慎地使用private继承)

一、先介绍一下private继承的语法某派生类private继承于基类之后: ①基类中的所有内容(不论是public、protected、private)在派生类中都是不可访问的 ②不能再将派生类对象转换为基类对象 ③基类仍然可以重写/隐藏基类的成员方法 二、private继承意味着什么关系?private继承意为implemented-terms-of(根据某物实现出):...

2020-03-13 10:20:40 612

原创 Effective C++条款38:继承与面向对象之(通过复合塑模出has-a或“根据某物实现出”)

一、类的复合关系复合:是类型之间的一种关系,是指在某种类型的对象内包含其他类型的对象 复合(composition)还有一些其他的同义词,例如layering(分层),containment(内含),aggregation(聚合)、embedding(内嵌) 例如:class Address {};class PhoneNumber {};//此类为复合类型class Pers...

2020-03-12 22:10:27 635

原创 Effective C++条款37:继承与面向对象之(绝不重新定义继承而来的缺省参数值)

待续

2020-03-12 20:43:19 577

原创 C++(数据结构与算法):60---分而治之、分而治之应用(残缺棋盘、归并排序、快速排序、选择问题、相距最近的点对)、分而治之解递归方程、复杂度的下限

一、分而治之的思想分而治之方法与软件设计的模块化方法非常相似 分而治之通常不用于解决问题的小实例,而要解决一个问题的大实例。一般步骤为: ①把一个大实例分为两个或多个更小的实例 ②分别解决每个小实例 ③把这些小实例的解组合成原始大实例的解 二、实际应用之找出假币问题描述一个袋子有16个硬币,其中只有一个是假币,这个假币比其他的真币重量轻(其他所有真币的重量都是相同的)...

2020-03-12 17:18:42 5307 4

SGI STL源码.zip

SGI STL的源代码,【免费下载】请查阅文章中的介绍:https://dongshao.blog.csdn.net/article/details/103506895

2020-08-26

QQChat.zip

Qt实现QQ聊天,编码介绍参阅CSDN链接:https://blog.csdn.net/qq_41453285/article/details/100527346。

2020-08-06

matrix.zip

矩阵的数组实现方式,使用见文章:https://blog.csdn.net/qq_41453285/article/details/103264337

2019-11-26

vrctorList.zip

用vector实现的线性表,代码介绍可以参见博客:https://blog.csdn.net/qq_41453285/article/details/103208499

2019-11-23

arrayList.cpp

用数组实现的线性表,代码介绍可以参见博客:https://blog.csdn.net/qq_41453285/article/details/103198828

2019-11-23

arrayList.zip

用数组实现的线性表,代码介绍可以参见博客:https://blog.csdn.net/qq_41453285/article/details/103198828

2019-11-22

USB DNW.zip

JZ2440V3开发板需要使用到的工具,用法可以参考文章:https://blog.csdn.net/qq_41453285/article/details/103016175、https://blog.csdn.net/qq_41453285/article/details/103016417

2019-11-11

01.OpenOCD with GUI setup.zip

JZ2440V3开发板需要使用到的工具,用法可以参考文章:https://blog.csdn.net/qq_41453285/article/details/103008185、https://blog.csdn.net/qq_41453285/article/details/103003691

2019-11-11

OpenJTAG.zip

JZ2440V3开发板需要使用到的工具,用法可以参考文章:https://blog.csdn.net/qq_41453285/article/details/103003691

2019-11-11

openwrt-17.01.4-17.01.4.zip

openwrt-17.01.4-17.01.4的源码,下载之后进行编译安装,详细的源码安装步骤见文章:https://blog.csdn.net/qq_41453285/article/details/102499225

2019-10-16

LinEnum-master.rar

LinEnum.sh提权脚本。具体使用见CSDN文章:https://blog.csdn.net/qq_41453285/article/details/101104225

2019-09-21

webshell b374k.zip

B374k WebShell的搭建使用,具体使用方法见文章:https://blog.csdn.net/qq_41453285/article/details/101025240

2019-09-19

HTTPS单向认证通信

HTTPS的单向认证通信,代码解压之后make编译,之后根据CSDN博客的内容进行运行:https://blog.csdn.net/qq_41453285/article/details/99708086(备注:单向认证) 备注:此资源缺少一个client.c文件,下载时联系博客小编

2019-09-14

PthreadPool.zip

针对于高并发服务器的线程池设计,采用3线程2池技术,详情介绍见CSDN博客:https://blog.csdn.net/qq_41453285/article/details/99708377

2019-09-14

XSS测试平台.zip

XSS测试平台是测试XSS漏洞获取cookie并接收Web页面的平台

2019-08-06

sqIi-labs,SQL注入平台

sqIi-labs:是一款学习SQL注入的开源平台,共有75种不同类型的注入 解压密码:ms08067.com sqIi-labs的使用文章见:https://blog.csdn.net/qq_41453285/article/details/100827739

2019-08-06

DVWA-master.zip

DVWA是一款开源的渗透测试漏洞练习平台,其中内含XSS、SQL注入、文件上传、文件包含、CSRF和暴力破解等各个难度的测试环境

2019-08-06

wampserver2.5.zip

WAMP是Windows中Apache、MySQL和PHP的应用环境,此文档为wampserver2.5

2019-08-06

glibc-2.27.tar.gz

glibc的2.27的源码,如果想要研究堆块的,可以看本文的博客:https://blog.csdn.net/qq_41453285/category_9150569.html

2019-07-22

深度寻路.cpp

深度寻路的.cpp,含有注释,里面使用到的Stack.h也在我的资源中,也可下载

2018-10-22

pthread_pool2.zip

线程池的实现。【免费下载方式】请参阅文章中的介绍:https://dongshao.blog.csdn.net/article/details/106622568。

2020-12-20

binarySearchTree.zip

二叉搜索树的链表形式实现,代码讲解见文章:https://blog.csdn.net/qq_41453285/article/details/103963343。 如果没有积分,关注公众号"多栖技术控小董",把资源链接和邮箱发给我(注:资源链接和邮箱放在同一个消息中发出去,别分开发)。10小时之内免费发给你。

2020-01-23

linkedBinaryTree.zip

二叉树的链表形式实现,代码讲解见文章:https://blog.csdn.net/qq_41453285/article/details/103638694

2020-01-22

completeWinnerTree.zip

赢者树的代码实现,代码讲解可以参见文章:https://blog.csdn.net/qq_41453285/article/details/103649141

2020-01-12

maxHblt.zip

高度优先左高树(HBLT)的实现,代码讲解见文章:https://blog.csdn.net/qq_41453285/article/details/103643863

2019-12-22

maxHeap.zip

使用最大堆实现优先级队列,代码讲解见文章:https://blog.csdn.net/qq_41453285/article/details/103639243。 如果没有积分,关注公众号"多栖技术控小董",把资源链接和邮箱发给我(注:资源链接和邮箱放在同一个消息中发出去,别分开发)。10小时之内免费发给你。

2019-12-21

arrayTree.zip

完全二叉树的数组实现,代码讲解见文章:https://blog.csdn.net/qq_41453285/article/details/103561197

2019-12-16

hashChains.zip

散列链地址法,详细介绍见文章:https://blog.csdn.net/qq_41453285/article/details/103534526

2019-12-15

SGI STL源码.zip

SGI STL的源代码,【免费下载方式】请查阅文章中的介绍:https://dongshao.blog.csdn.net/article/details/103506895

2019-12-14

hashTable.zip

哈希冲突的线性探查法,详细介绍见文章:https://blog.csdn.net/qq_41453285/article/details/103533372

2019-12-13

skipList.zip

跳表的C++实现,具体介绍可以参见文章:https://blog.csdn.net/qq_41453285/article/details/103449903

2019-12-12

sortedChain.zip

字典的链表实现,介绍见文章:https://blog.csdn.net/qq_41453285/article/details/103449056

2019-12-08

linkedQueue.zip

队列的链表实现,见文章:https://blog.csdn.net/qq_41453285/article/details/103446221

2019-12-08

arrayQueue.zip

队列的数组形式实现,见文章:https://blog.csdn.net/qq_41453285/article/details/103444692

2019-12-08

linkedStack.zip

栈的链表实现,详情见文章:https://blog.csdn.net/qq_41453285/article/details/103414107

2019-12-08

derivedLinkedStack.zip

栈的链表实现,详情见文章:https://blog.csdn.net/qq_41453285/article/details/103414107

2019-12-05

arrayStack.zip

栈的数组形式实现,见文章:https://blog.csdn.net/qq_41453285/article/details/103329785

2019-12-05

derivedArrayStack.zip

栈的数组形式实现,文件见:https://blog.csdn.net/qq_41453285/article/details/103329785

2019-12-05

squareMatrix.zip

特殊矩阵的实现,C++实现。具体见文章:https://blog.csdn.net/qq_41453285/article/details/103258171

2019-11-30

单链表chain.zip

线性表的单向链表实现方式,使用见文章:https://blog.csdn.net/qq_41453285/article/details/103218024

2019-11-25

空空如也

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

TA关注的人

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