自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(136)
  • 资源 (1)
  • 收藏
  • 关注

原创 音视频基础知识之视频基础总结

目录视频基础知识RGB数字图像表示数字图像表示 YUV格式视频编码技术总结视频基础知识RGB数字图像表示什么是RGB,对于一幅图像来说,我们应该怎么去保存它呢?一张图片在计算机中其实是用一个个正方形得小方块组成得,每一个小方块就是一个像素点。像这样:那么我们所谓得RGB图像表示,就是任何一种颜色都是可以由这三种基础颜色组合得到,所以一张图片就是有很多像素点构成,每个像素点都是一种颜色得小方块,RGB就是用来表示每个小方块的颜色的,那么这样就是RGB表示小方块(..

2020-11-15 08:36:32 345

原创 C++基础知识 完结篇-继承-多态

整理码字不易,养成好习惯,点赞关注,你的支持就是我写下去的动力,谢谢老板。本文为C++第三篇后续接着这篇文章写,大家可以持续关注,前四篇在主页4.7 继承和派生4.7.1 继承概述4.7.1.1 为什么需要继承 网页类 classIndexPage{ public: //网页头部 voidHeader(){ cout <<"网页头部!"<<endl; } //网页左侧菜单...

2020-08-06 07:23:26 445

原创 C++基础知识(四)-友元和运算符重载

整理码字不易,养成好习惯,点赞关注,你的支持就是我写下去的动力,谢谢老板。本文为C++第三篇后续接着这篇文章写,大家可以持续关注,前三篇在主页4.5 友元类的主要特点之一是数据隐藏,即类的私有成员无法在类的外部(作用域之外)访问。但是,有时候需要在类的外部访问类的私有成员,怎么办?解决方法是使用友元函数,友元函数是一种特权函数,c++允许这个特权函数访问私有成员。这一点从现实生活中也可以很好的理解:比如你的家,有客厅,有你的卧室,那么你的客厅是Public的,所有来的客人都可以进去,.

2020-08-05 07:13:02 542

原创 C++基础知识(三)-类和对象

整理码字不易,养成好习惯,点赞关注,你的支持就是我写下去的动力,谢谢老板。本文为C++第三篇后续接着这篇文章写,大家可以持续关注,前两篇在主页4. 类和对象4.1 类和对象的基本概念4.1.1 C和C++中struct区别c语言struct只有变量 c++语言struct 既有变量,也有函数4.1.2 类的封装我们编写程序的目的是为了解决现实中的问题,而这些问题的构成都是由各种事物组成,我们在计算机中要解决这种问题,首先要做就是要将这个问题的参与者:事和物抽象到计算机程序中,.

2020-07-31 06:39:02 484

原创 C++基础知识(二)-基本知识点及语法

整理码字不易,养成好习惯,点赞关注,你的支持就是我写下去的动力,谢谢老板。本文为C++第二篇后续接着这篇文章写,大家可以持续关注,上一篇在主页3. C++对C的扩展3.1 ::作用域运算符通常情况下,如果有两个同名变量,一个是全局变量,另一个是局部变量,那么局部变量在其作用域内具有较高的优先权,它将屏蔽全局变量。 //全局变量 inta =10; voidtest(){ //局部变量 inta =20; //全局a被隐藏 ...

2020-07-30 06:59:04 450

原创 C++基础知识(一)-初识,概述

整理码字不易,养成好习惯,点赞关注,你的支持就是我写下去的动力,谢谢老板。本文为C++第一篇后续接着这篇文章写,大家可以持续关注1. C++概述1.1 c++简介“c++”中的++来自于c语言中的递增运算符++,该运算符将变量加1。c++起初也叫”c with clsss”.通过名称表明,c++是对C的扩展,因此c++是c语言的超集,这意味着任何有效的c程序都是有效的c++程序。c++程序可以使用已有的c程序库。 库是编程模块的集合,可以在程序中调用它们。库对...

2020-07-30 06:52:28 334

原创 前端知识(五)CSS盒子模型(很实用)

各位大哥养成好习惯,点赞再看,关注不迷路,前后端知识这里都有,由浅入深,我们一起进步,你的支持就是我最大的动力。第01阶段.前端基础.盒子模型盒子模型(CSS重点)css学习三大重点: css 盒子模型 、 浮动 、 定位主题思路:目标:理解:能说出盒子模型有那四部分组成能说出内边距的作用以及对盒子的影响能说出padding设置不同数值个数分别代表的意思能说出块级盒子居中对齐需要的2个条件能说出外边距合并的解决方法应用:能利用边框复合写法给元素添加边框能

2020-07-29 06:40:08 795

原创 前端知识(四)CSS选择器进阶,背景,三大特性(很详细)

各位大哥养成好习惯,点赞再看,关注不迷路,前后端知识这里都有,由浅入深,我们一起进步,你的支持就是我最大的动力。第01阶段.前端基础CSS 选择器进阶我们围绕一个 导航栏案例进行学习知识点。重点:复合选择器后代选择器并集选择器标签显示模式CSS背景背景位置CSS三大特性优先级1. CSS复合选择器目标理解理解css复合选择器分别的应用场景应用使用后代选择器给元素添加样式使用并集选择器给元素添加样式使用伪类选择器为什.

2020-07-28 07:15:13 289

原创 前端知识(三)CSS字体样式属性调试, sublime奇技淫巧(很实用)

各位大哥养成好习惯,点赞再看,关注不迷路,前后端知识这里都有,由浅入深,我们一起进步,你的支持就是我最大的动力。CSS字体样式属性调试工具目标应用使用css字体样式完成对字体的设置使用css外观属性给页面元素添加样式使用常用的emment语法能够使用开发人员工具代码调试1.font字体1.1 font-size:大小作用:font-size属性用于设置字号p { font-size:20px; }单位:可以使用相对长度单位,也可以使用绝.

2020-07-28 06:58:51 866

原创 前端知识(二)CSS选择器(很关键)

各位大哥养成好习惯,点赞再看,关注不迷路,前后端知识这里都有,由浅入深,我们一起进步,你的支持就是我最大的动力。第01阶段.前端基础.CSS基础选择器CSS选择器(重点)学习目标:理解能说出选择器的作用id选择器和类选择器的区别应用能够使用基础选择器给页面元素添加样式1. CSS选择器作用(重点)如上图所以,要把里面的小黄人分为2组,最快的方法怎办?很多, 比如 一只眼睛的一组,剩下的一组选择器的作用​ 找到特定的HTML页面元素一句话说出他们:**.

2020-07-27 06:46:12 732

原创 前端知识(一)认识HTML

第01阶段.前端基础.认识HTML学习目标理解HTML的概念HTML标签的分类HTML标签的关系HTML标签的语义化应用HTML骨架格式sublime基本使用1. HTML 初识HTML 指的是超文本标记语言 (Hyper Text Markup Language)是用来描述网页的一种语言。HTML 不是一种编程语言,而是一种标记语言 (markup language)标记语言是一套标记标签 (markup tag)一句话说出html作用:网页是由网页.

2020-07-26 20:44:21 510 1

原创 从原理到代码,线程池给你整的明明白白,带代码讲解视频

大家好,从今天开始,我将定期写一些知识分享,把自己在前后端学习过程中觉得有用的知识点分享出来,大家可以关注学习,也欢迎大家和我一起讨论,有问题也可以问我,一定耐心解答,我的想法就是帮助别人不要再走自己踩过的坑。代码视频链接: 戳这里瞅一瞅.文章目录为什么是线程池同步的方式更高效的做法更优秀的方案干掉锁把线程池的尺寸为什么是线程池先思考一下,在哪些场景下会用到多线程:阻塞调用(阻塞IO、等待资源、耗时操作)耗时的计算(复杂的计算或者继续请求等操作)高密度的任务(高并发,低延时场景)总之就是需

2020-07-26 17:38:47 266

原创 听说你还没上过Reactor模式,那还等神马,客官来呀!

大家好,从今天开始,我将定期写一些知识分享,把自己在前后端学习过程中觉得有用的知识点分享出来,大家可以关注学习,也欢迎大家和我一起讨论,有问题也可以问我,一定耐心解答,我的想法就是帮助别人不要再走自己踩过的坑。文章目录Reactor模式为什么我们要学reactorReactor模式简介Reactor来也1、单Reactor单线程模型2、单reactor多线程模型3、多reactor多线程模式总结Reactor模式reactor模式就是反应堆模式,这个模式非常重要,无论是开发还是面试,都是非常有用的,.

2020-07-25 21:51:38 312

原创 leetcode刷题笔记之全排列

题目:给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]全排列的话,这个有好几种做法,最简单的还是一个交换的思想:先拿到第一个元素,然后用第一个元素和后面的依次交换交换完以后,就是再对除第一个元素之外的后面的序列继续递归然后交换完肯...

2020-01-20 09:09:37 293

原创 Git在开发中的基本使用

文章目录GIT简介工作区暂存区仓库区工作区暂存区仓库区总结:操作git的单人操作团队操作GIT简介git是目前世界上最先进的分布式版本控制系统(没有之一),它是用来管理源代码的,为了方便多人协同开发,方便个人管理代码,方便版本的控制,是由Linux之父开发的。工作区暂存区仓库区[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o6BJXPa5-157941447...

2020-01-19 14:15:04 327

原创 一步一步搞懂Makefile

文章目录MakefileMakefile是什么Makefile的语法Makefile使用变量Makefile自动推导make函数文件搜索超级大项目的Makefile后话:MakefileMakefile是什么问题:在linux下开发应用程序的时候,如果项目的源文件有一个或者几个我们可以通过:gcc xxx.c -o xxxx来进行编译。那么如果有成百上千个的时候,还怎么通过这样的命令去实现...

2020-01-19 09:43:20 499

原创 Redis分析之整体架构

Redis 源码分析之服务端整体架构redis是怎么启动的,任何的C语言系统肯定都是从main函数进入,我们又知道redis主要就是一个服务端程序,所以找server的main,在server.c里面找到main函数。启动过程下面看看main函数干了些什么:c语言系统中一般会维护一个全局的数据对象去存储整个系统的关键数据,这里维护的就是一个server对象,系统数据都保存在这个结构体中,m...

2020-01-17 15:23:43 494

原创 二叉树的遍历-递归和非递归实现

文章目录二叉树的遍历递归遍历非递归遍历总结二叉树的遍历二叉树遍历就是遍历每一个节点,比较常用的就是前中后序遍历的方式,本文介绍递归遍历和非递归遍历两种方式。前序遍历:就是先输出根节点,再左节点再右节点。中序遍历:先左节点,再中节点再右节点,如果是有序的二叉树,这种方式输出就是有序的。后序遍历:先左节点,再右节点,最后根节点。所谓的前中后就是什么时候输出或者说操作根节点。递归遍历递归...

2020-01-17 10:29:26 279

原创 从C语言异步爬虫小例子-想想异步操作

异步处理异步这个词,好像听起来简单,但真的理解起来就挺复杂的。从一个生活的例子谈起:早上有这么几件事,刷牙洗脸,上厕所,烧开水,泡面,那么现在怎么做。方案一:顺序做:假设刷牙洗脸10分钟,上厕所5分钟,烧开水5分钟,泡面3分钟,那么这样就是23分钟。方案二:先烧开水,然后上厕所,然后刷牙洗脸,然后泡面,这样就是18分钟。方案一就是程序中的同步操作,方案二就是程序中的异步思想,大概能知...

2020-01-16 10:56:00 377

原创 Nginx配置之location

文章目录Nginx的配置精准匹配一般匹配正则匹配 ~正则匹配~*正则匹配 ^~ ,!~和!~*,通用匹配/特殊匹配@匹配的优先级root和alias指令Nginx的配置nginx配置主要就是配置三个区段:http,server,locationhttp没什么好说的,server也没什么好说的主要就是locationlocation通过指定的模式与客户端请求的URI来匹配,模式类似正则表达式...

2020-01-15 14:02:54 251

转载 niginx基本配置

#注释用##每一条配置结束用;结尾#每一块配置用{}#运行用户user nobody;#工作进程的数量worker_processes 1;#全局的错误日志文件及PID文件#errlog logs/err.log;#pid logs/nginx.pid;#events块,主要是工作模式和最大连接数events{ #工作模式就是选择I多路复用的方式,可以是sel...

2020-01-15 11:12:56 538

原创 hiredis的异步处理

Redis异步处理在使用hiredis进行编程时,比较常用的就是使用同步的方式,就是发送一条指令,然后等待结果,这样的操作如果很频繁的话就会造成程序执行比较缓慢,走走停停的感觉。所以这里我们想想能不能使用异步执行命令的方式,hiredis为我们提供了一套异步的接口。异步的思想:所谓异步就是把一些耗时的操作单独开一个线程或者进程去执行,通过这样的方式,主程序就不用去等待执行,所以就会提升速度,...

2020-01-15 10:02:43 1376

原创 Redis基本数据类型

Redis大名鼎鼎的redis估计是无人不知,redis作为一个缓存数据库,是非常优秀的存在,主要有三个特点:redis支持数据的持久化,可以将缓存中的数据保存到磁盘中;redis支持五种结构的数据,string、hash、list、set、zset;redis支持数据的备份,支持master-slave模式数据备份。优势:redis的速度很快,读速度是每秒110000次,写速度...

2020-01-14 09:10:33 151

原创 使用zmq的多帧消息完成一个文件传输功能

zmq多帧消息zmq可以发送多帧消息,也就是说一个消息可以包含多个帧,这么说可能不太好理解。举一个例子,比如要传输一个文件,如果文件很大,这时候把这个文件传输成一个消息,这个消息肯定会是很多次的传输,那么每一次传输的就是一帧。这就不用规定特殊的协议去传输文件了,所以用zmq传输文件就不用类似ftp那样复杂的文件传输协议了。多帧消息现在可以这么处理,比如发送一个多帧消息,这个消息有五个帧,可以...

2020-01-13 16:09:52 4381

原创 zmq初次使用

文章目录传统网络通信zmq是什么传统网络通信[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传对着这个图就很简单了:服务端:肯定要有一个socket然后绑定fd和ip,port,当然这时候需要转换成网络字节序,然后一堆操作,绑定完成以后就用这个fd去监听这个端口,开启listen,然后等待连接就是调用accept阻塞在这里等待连接,客户端连接后循环阻塞读写。客户端:...

2020-01-11 11:09:14 2117 1

原创 从Thrift服务框架思考服务器框架-真的很有收获

Thrift框架底层的(I/O)模块:负责实际的数据传输,比如Socket、文件、压缩数据流等的传输。TTransport(负则传输的模块,就是底层I/O的实现):每一种传输方式都对应一个该模块,比如TSocket负则Socket通信,负责传输的对象就是Message。TProtocol:这个就是协议模块,因为对Message的传输需要统一,否则就乱了,也就是对Message进行序列化的模块...

2020-01-10 14:08:08 296

原创 libevent的使用流程

文章目录libevent的使用流程具体使用流程:1、事件处理的框架:event_base2、3、创建事件和添加事件4、事件循环5、释放资源总结libevent的使用流程libevent是一个高性能事件通知库,它的优点主要有这些:事件驱动的:也就是说当某一个被关注的事件发生时会启动事件的回调函数。比如epoll就是事件驱动的。高性能轻量级:libevent虽然很小,代码十分简洁清量,但是它...

2020-01-09 16:50:51 411

原创 thrift中工厂模式的使用-抽象工厂

thrift中工厂模式的使用-抽象工厂我们以一个使用开始,在thrift中server模块有这么一个类TServer,就是服务器端的主类,这个类中有这么一行:std::shared_ptr<TProtocolFactory> inputProtocolFactory_;//输入协议工厂指针可以看到,直接指明用的就是工厂模式,那么这个是怎么设计的:TProtocolFactory...

2020-01-09 11:15:20 284

原创 C++ 单例模式详解

文章目录C++ 单例模式详解一、单例模式:二、单例的实现思路二、懒汉模式2.0三、最推荐的懒汉模式3.0单例模板的实现:写在最后C++ 单例模式详解一、单例模式:什么是单例:在面向对象编程中,我们创建对象的过程就是创建一个类实例,一个类是可以创造很多的类实例的,所谓单例就是规定一个类就只能创建出一个实例对象,比如:打印机实例,只要有一个就行。一些使用场景:比如我们在使用数据缓冲区的时候...

2020-01-07 15:08:49 3001

原创 进程与线程

文章目录进程与线程进程通信无名管道:命名管道:FIFO消息队列:信号量:共享内存:Socket通信:线程之间的同步互斥锁:互斥锁就是一种锁机制条件变量读写锁自旋锁信号量总结:进程与线程概念:什么是线程:是操作系统能够进行运算调度的最小单位。什么是进程:是计算机中某一次数据集合的运行活动,是操作系统分配资源的最小单位。线程依赖于进程,进程就是线程的容器。上面的描述比较官方,我的理解就是:想要通...

2020-01-06 13:02:07 168

原创 ACE中的单例模式

ACE中的单例模式ACE中的单例就是利用ACE_Singleton这个类去管理其他类的单例,需要实现一个单例类的时候只需要做两件事:将自己的类T的构造和析构函数都私有化,为了防止用户去生成和释放对象。然后把ACE_Singleton<T,ACE_LOCK>类声明为自己的友元类,然后就可以调用友元类的instance方法获得自己的单实例,这个单实例不用自己管理,可以使用typed...

2020-01-05 21:05:32 499

原创 过滤器模式-Nginx是怎么用的

过滤器模式-Nginx是怎么用的过滤器模式:什么是过滤器大家应该都知道,常见的就是对自来水一层层过滤,那么抽象出来的话,就是有一个流,然后层层把关,每一次都筛选。在我们的软件设计中经常会有这样的应用,比如对一些信号的拦截,也是过滤器模式的思想。再或者一些网络框架中的中间件设计,利用中间件对数据进行处理也是过滤器思想。那么Nginx中怎么使用这种思想的,Nginx中利用过滤器来处理http的r...

2020-01-04 09:26:06 751

原创 epoll-select-poll,红黑树的应用

前言关于epoll和select还有poll这三个东西,一直经常听到,自己也去弄过他们的原理,但是大都没有总结,就着红黑树的学习,再一次去理解epoll底层的一些实现,现在就来总结一下这三个到底是个啥。概念epoll:epoll到底是什么,epoll其实就是一种I/O事件通知机制,是Linux实现I/O多路复用的一种手段,(好吧我知道这就话说完基本就蒙蔽了,不用怕继续看)。I/O:就是in...

2020-01-02 15:30:34 1830 2

原创 红黑树应用之Linux内存管理

红黑树特性Linux内存管理有这么一句话:如果对查找效率要求过高,而且又需要平凡的去增删改操作时就应该想到使用红黑树!因为红黑树的特性就是:查找效率较高,增删效率也较高,自身是平衡的,没有AVL树强平衡,所以它在删除操作时要比AVL树优秀很多,红黑树来源于2-3树,它的五条性质都来源于2-3树,就是高度和宽度之间的博弈,而且每条性质都顺其自然。有兴趣可以研究一下,真的很有意思哦。Linux内存...

2020-01-02 10:50:30 825

原创 Nginx中Timer的实现-红黑树的应用

NginxTimer的实现在说主题之前先来说一下Linux中Timer的实现:在Linux中,设置定时器,是通过每次系统定时器时钟的中断处理程序来设置相应的软中断位,然后通过这个中断处理程序扫描系统中所有挂起的定时器,如果发现哪个定时器超时了就调用相应的处理函数,也就说Linux定时器是通过系统中断实现的。在Nginx中,Timer是自己实现的,而且实现的方法完全不同,它是通过一个红黑树去维护...

2020-01-01 20:23:58 1155 4

原创 STL中的map、set(学完红黑树后的一个小总结)

树介绍树是一种很常用的数据结构,在很多地方都能看到树的应用,因为树往往可以用来优化数据查找的效率。在一些优秀的系统中就会经常用到各种树结构,比如红黑树、AVL树、B树等。红黑树的应用:原理:根节点是黑色的只有红黑节点叶节点都是黑色的nil红色节点子节点必须是黑色的对每个节点,从该节点到叶子节点路径上的黑节点数目一致,黑平衡性质以上的五个性质保证了红黑树是平衡的,所以红黑树的...

2020-01-01 17:49:33 362

原创 动态规划-看完就会系列

前言第一眼看到动态规划四个字,我的感觉是,好像很牛逼的样子,是不是很难啊,其实掌握了一定套路后,真没那么难。描述:动态规划就是一种解决问题的方法,什么方法呢?就是利用已经知道的解去求解未知问题的解,如果这两个问题之间存在一定的联系,那么就可以用已知解加上这个联系得到未知解了。比如你想去求1+1+1这个问题的解,那么我告诉你1+1=2,那么1+1+1就是1+1的解再加上1喽,这就是他们之间的...

2019-12-23 16:35:05 201

原创 谈一谈算法与数据结构-及一些忠告

概念算法:任何一个良定义的计算过程,该过程取某个值或者值的集合作为输入并产生某个值或值的集合作为输出。这是比较概念化的定义,我们来分析一下,算法到底是什么,比如有一个问题:计算1到10所有整数的和,你现在需要解决它,就得一步一步计算先算什么,再算什么,一步一步直到把问题的答案计算出来,那么计算的这个过程就是算法。数据结构:数据结构是一种存储和组织数据的方式,旨在便于访问和修改。对于数据结构,其...

2019-12-20 10:27:23 244

原创 leetcode刷题笔记(七)—双指针双索引的用法遍历数组二

前言接上一篇的双索引问题1、给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组。如果不存在符合条件的连续子数组,返回 0。示例:输入: s = 7, nums = [2,3,1,2,4,3]输出: 2解释: 子数组 [4,3] 是该条件下的长度最小的连续子数组。进阶:如果你已经完成了O(n) 时间复杂度的解法, 请尝试 O(n ...

2019-12-16 16:51:00 421

原创 leetcode刷题笔记(六)—双指针双索引的用法遍历数组

碎碎念这一篇我把代码和注释都写在一起了,应该都是能看懂的# 给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。# # 函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。# # 说明:# # 返回的下标值(index1 和 index2)不是从零开始的。# 你可以假设每个输入只对应唯一的答案,而且你不可以重...

2019-12-16 09:51:51 302

大华码流解析库 General-StreamAnalyzer-Chn-ES-V1.00.0.5304

大华摄像机码流解析库 配套demo 可以解析大华摄像机码流 解析大华设备码流为裸流 包含linux的动态库 包含win动态库

2023-03-22

录制_2020_07_24_20_27_47_105.mp4

本人录制的一个C语言异步小爬虫,设计知识点,HTTP,Select,同步,异步,epoll,回调,基本异步框架

2020-07-24

空空如也

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

TA关注的人

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