自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++多态虚函数表详解(多重继承、多继承情况)

本文关键词:C++ 多态 虚函数表 虚函数指针 动态绑定 概述:C++相对其他面向对象语言来说,之所以灵活、高效。很大程度的占比在于其多态技术和模板技术。C++虚函数表是支撑C++多态的重要技术,它是C++动态绑定技术的核心。本文章将着重图解虚函数表相关知识,在阅读本文前,博主已经默认你已经学习了C++多态的语法,并且通过代码实践过。

2018-08-20 16:51:00 37347 38

原创 Web服务器工作原理详解(基础篇)

概述:Web服务器概念较为广泛,我们最常说的Web服务器指的是网站服务器,它是建立在Internet之上并且驻留在某种计算机上的程序。Web服务器可以向Web客户端(如浏览器)提供文档或其他服务,只要是遵循HTTP协议而设计的网络应用程序都可以是Web客户端。Web服务器和HTTP服务器可以说是同一个东西,当然非得细分的话,HTTP服务器是建立在HTTP协议之上的提供文档浏览的服务器,更多的是...

2018-08-14 17:12:00 71360 7

原创 网络高并发服务器之epoll接口、epoll反应堆模型详解及代码实现

**epoll接口**是为解决Linux内核处理大量文件描述符而提出的方案。该接口属于Linux下**多路I/O复用接口**中select/poll的增强。其经常应用于Linux下高并发服务型程序,特别是在大量并发连接中只有少部分连接处于活跃下的情况 (通常是这种情况),在该情况下能显著的提高程序的CPU利用率。(1) epoll接口的一般使用(2) epoll接口 + 非阻塞(3) epoll接口 + 非阻塞 + 边沿触发(4) epoll反应堆模型 (重点,Libevent库的核心思想)

2018-08-03 16:52:52 17757 30

原创 OpenCV双边滤波详解及实代码实现

双边滤波(Bilateral Filter)是非线性滤波中的一种。这是一种结合图像的空间邻近度与像素值相似度的处理办法。在滤波时,该滤波方法同时考虑空间临近信息与颜色相似信息,在滤除噪声、平滑图像的同时,又做到边缘保存。 双边滤波采用了两个高斯滤波的结合。一个负责计算空间邻近度的权值,也就是常用的高斯滤波器原理。而另一个负责计算像素值相似度的权值。在两个高斯滤波的同时作用下,就是双边滤波。如...

2018-05-04 23:38:32 31148 13

原创 快速高斯滤波、高斯模糊、高斯平滑(二维卷积分步为一维卷积)

高斯滤波(Gauss Filter)是线性滤波中的一种。在OpenCV图像滤波处理中,高斯滤波用于平滑图像,或者说是图像模糊处理,因此高斯滤波是低通的。其广泛的应用在图像处理的减噪过程中,尤其是被高斯噪声所污染的图像上。 高斯滤波的基本思想是: 图像上的每一个像素点的值,都由其本身和邻域内其他像素点的值经过加权平均后得到。其具体操作是,用一个核(又称为卷积核、掩模、矩阵)扫描图像中每一个像素点...

2018-05-03 23:16:58 17788 8

原创 OpenCV高斯滤波器详解及代码实现

高斯滤波(Gauss Filter)是线性滤波中的一种。在OpenCV图像滤波处理中,高斯滤波用于平滑图像,或者说是图像模糊处理,因此高斯滤波是低通的。其广泛的应用在图像处理的减噪过程中,尤其是被高斯噪声所污染的图像上。 高斯滤波的基本思想是: 图像上的每一个像素点的值,都由其本身和邻域内其他像素点的值经过加权平均后得到。其具体操作是,用一个核(又称为卷积核、掩模、矩阵)扫描图像中每一个像素点,将

2018-05-01 19:41:40 47293 16

原创 mmap共享存储映射(存储I/O映射)系列详解

mmap共享存储映射又称为存储I/O映射,是Unix**共享内存**概念中的一种。 在Unix进程间通信中,大致有1. 管道 pipe(),用于父子进程间通信(不考虑传递描述符)2. FIFO(有名管道) 非父子进程也能使用,以文件打通3. 文件 文件操作,效率可想而知4. 本地套接字

2018-04-18 22:10:20 7617 9

原创 dup2函数参数顺序配图分析

引言: 之前在学习Linux进程间通信时,使用了管道来传递数据。而管道与管道之间对接采用dup2函数进行连接,发现dup2函数的两个参数填充顺序着实有趣,两个管道之间到底是怎么对接成功的呢?学习了一下以配图分析的方式呈现。一、使用场合首先介绍这个图: 父进程fork出一个子进程,传递数据给进程,希望子进程去调用一个外部程序来处理并返回数据(比如CGI程序)。 流程: 父进程fo...

2018-04-03 09:37:00 1346 4

原创 致我的大学

好好学习,平平谈谈这是我大学的第四年,也是我热衷代码的第四年。回头去看我的四年,没什么不得了的大事记,“平平谈谈”四个字和我挺有缘。我从入学到现在所度过的时光,像是被水推着走的叶舟,一刹那就渡到了现在。而今水还是水,舟还是舟,波澜不惊是永远的主题。写这段文字的时候我在IT业发达的杭州,这是我二十一年来头一次来杭州。半年前我为来杭州中科院做了充足的准备,半年后的今天我正在给未来做充足的准备。学习...

2018-12-03 10:16:46 1363 7

原创 C++11 线程并发学习(一)

本文关键词:C++11 多线程概述:C++11标准的发布使得C++变得更加强大,其中最重要的特性是支持了多线程。这也是C++标准第一次在语言上承认了多线程应用。C++标准包含了C++语言本身和官方C++库。并且,在C++11标准之前是没有进程和线程的,而C++11标准承认了线程,并在官方C++库中提供了编写多线程程序的相关组件。本文以线程并发作为学习方向,记录博主本人的学习过程。一、C++并发...

2018-11-27 20:04:27 835

原创 OpenCV中值滤波器详解及代码实现

中值滤波(Median Filter)是一种非线性滤波技术,其基本思想是在单通道中将像素点邻域的灰度值进行排序,取中间值来代替原来的像素点的灰度值。中值滤波是目前处理椒盐噪声最好的滤波方式。 椒盐噪声(salt-and-pepper noise)又称脉冲噪声,在传感器或者远程传输的过程中,原本的数据会被影响,导致图像出现大量散粒状的噪声点。而在图像中,能量大部分集中在低频和中频,因此将邻域的数据...

2018-04-28 10:38:52 17473 5

原创 读余华先生的《活着》、《许三观卖血记》

余华先生真是个讲故事的高手。就像小时候在婆婆的店子里听村子里的老人在吹牛皮感觉,时不时的夹杂点少儿不宜的口吻,有时候还会一本正经的给你扯一些人生大道理。 关上书总感觉热泪盈眶。记得没看书前去太平镇的路上,波波告诉我他很幸福,我说为什么呢。他说许三观每次卖完血才会去吃一盘炒猪肝,喝二两温黄酒。而我们现在不用卖血也能吃炒猪肝,所以幸福。我不解。直到今天看完了这两本书,我突然能明白波波当时为什么要叫我去

2018-02-05 19:02:58 764

原创 读沈从文先生的《边城》

读过这本三十年代的白话文文学,确确实实可以感受到八十多年前的那座山那条河,还有山下河边的一个又一个日子。 心里澎湃之余,照着小说上所描写的,真的在川湘贵三省的交界处找到了那个茶峒小城。 有一小溪,溪边有座白色小塔,塔下住了一户单独的人家。这人家只有一个老人,一个女孩子,一只黄狗…… 这个人也许永远不回来了,也许“明天”回来!2016年9月6日

2018-02-05 19:00:31 486

原创 读王小波先生的《黄金时代》、《青铜时代》

黄金时代很精辟,青铜时代很水分,但是水分更有趣。不管是王二还是薛嵩又或者是李靖,大家都只是一本正经的在做自己的事,也一本正经的希望有一个能和自己一起做事的人。 王小波总喜欢用“自己人”这个概念。如果我把你当自己人了,那什么都可以和你说什么都可以替你做,而你只需要给我你对我的友谊。王二总想和陈清扬敦伟大的友谊,但王二也总是十分真诚的去敦这份友谊。也许就是在山上王二对陈清扬的那几个巴掌,让陈清扬终于明

2018-02-05 18:57:07 987 1

原创 读冯唐先生的《不二》

不二是个小和尚,也许是你,是我。而佛语的不二,是无彼此差别。 一国天子,文坛泰斗,佛门大德,与一个小和尚不二,心里想的是相同的事,在床上做的也是同一回事,那么这又有什么好大惊小怪的呢? 老和尚弘忍给不二的入处是一把扫帚。弘忍说,你得把厕所的地面扫出沉香的味道。这个扫帚就是你的入处。 那为什么寺庙里每一和尚都得有一个入处呢? 因为每一个和尚都想要成佛。2016年10月13日

2018-02-05 18:55:02 2256

原创 读冯唐先生的《素女经》

欲望的消解,放在全球化时代的滚滚浪潮中,的的确确是都市情绪病的良药。但是药吃得多了,本身也成了一种病。 我们不能否认,中国如果少了福建城温州城甚至是东莞这样的地方,社会还会不会稳定,精神病院还会不会够住。 我们从出生到现在所度过的时光,就像被水推着走的水,在一刹那就流淌到了现在。在小家伙到老家伙的一个个日子里,有些问题你敢问,但是答案你敢去知道吗?2016年10月23日

2018-02-05 18:53:39 5415

原创 读冯唐先生的《天下卵》

人物不重要,故事不重要,思想不重要,情节不重要。反正就是这样,文字是用来打败时间的。 历史荒诞不荒诞,现实真实不真实,反正就这样,活着活着就老了。子不语怪、力、乱、神。这都是非常可怕的、谁都不敢和不愿意面对的东西,但总有人要说,要做。在这天下,在这卵、球一样的天下里。2016年10月25日

2018-02-05 18:51:46 797

原创 读《喊山》

生活不仅仅只有代码

2018-02-05 18:49:48 391

原创 读王小波先生的《白银时代》

生活不仅仅只有代码

2018-02-05 18:47:19 450 2

原创 读余华先生的《现实一种》

生活不仅仅只有代码

2018-02-05 18:44:53 558

原创 读《死神的精确度》

人活着不仅仅只有代码

2018-02-05 18:40:20 531

原创 SIGPIPE信号导致服务器进程退出的原理及解决办法

引言:在采用TCP协议进行文件流传输时,客户端的不正常退出导致的服务器进程直接退出。而一个稳健的高并发服务器上这样的情形是不被允许的,接下来将剖析其产生服务器进程退出的根本原因;

2017-12-20 11:57:01 1826 2

原创 TCP粘包原理及解决方案

TCP协议是网络通信协议中十分重要的协议,相比于UDP协议来说,它是一个可靠的传输协议,并且是一个面向数据流的协议;所谓面向数据流,其实是指数据传输是以流式的方式传输,这些传输的数据就像一条河里的水,他们之间是没有缝隙的,也就是说TCP协议传输的数据是无边界的;(其实TCP粘包概念个人感觉不恰当,毕竟TCP传输是以流式的方式) 而UDP是面向数据包的,收发数据包要么全收要么不收

2017-12-19 12:00:11 7973 7

原创 线程池原理及C语言实现线程池

备注:该线程池源码参考自传直播客培训视频配套资料; 引言:线程池是一种多线程处理形式,大多用于高并发服务器上,它能合理有效的利用高并发服务器上的线程资源;在Unix网络编程中,线程与进程用于处理各项分支子功能,我们通常的操作是:接收消息 ==> 消息分类 ==> 线程创建 ==> 传递消息到子线程 ==> 线程分离 ==> 在子线程中执行任务 ==> 任务...

2017-12-14 15:12:41 50915 62

原创 C 语言实现MySQL连接池

引言:数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个; 连接池技术大多运用在高并发服务器的后面;在现有的大型高并发服务器上,每一次线程与数据库的数据交换都属于网络连接,频繁的启停连接是极不合理的,特别是在大型Web服务器上过长时间的延迟在用户体验上极其糟糕,而重复的建立与断开数据库连接对系统的运行也有相当大的影响;连接池是一个抽象的

2017-12-11 16:29:24 4581 12

原创 Linux C Http 文件服务器实现

备注:Linux C语言实现 Http文件服务器 可上传可下载文件该文件服务器是根据Tinyhttpd的http源码的基础上实现的整体思路: 创建socket监听请求,收到请求后线程分离,在线程中进行请求数据的解析;根据解析到的消息我们分类处理,目前该文件服务器可提供的文件包括html、css、jpg、gif;动态文件为PHP(也可用C实现动态网页)

2017-12-08 23:09:31 4452 2

原创 QSS(CSS)文件在Qt中的使用

在Qt中,QSS和CSS文件的使用方式是一样的步骤1:将预先准备好的QSS或CSS文件添加到工程中  步骤2:在main中引用下面代码QFile qssFile(":/styleSheet.css");//资源文件":/css.qss"qssFile.open(QFile::ReadOnly);if(qssFile.isOpen()){QString qss = QLa

2017-09-25 20:03:15 2411 1

原创 Qt音乐播放器的实现(未完持续)

以前跟着霍亚飞老师的《Qt及Qt Quick开发实战精解》敲过一个简单的音乐播放器,其中主要用到的是phonon模块来实现的,但是在Qt高版本中该模块已经废弃,我开始寻思着用其他模块来实现。这次音乐播放器主要用到的是QMediaPlayer首先来展示下完成效果,有兴趣的小伙伴可以下载源码使用看看    /*                          源码地址

2017-09-25 11:26:55 2746 1

原创 Qt设置无边框窗口,窗口透明度

两行代码搞定,直接上代码 this->setWindowFlags(Qt::Window | Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint|Qt::Tool|Qt::X11BypassWindowManagerHint); this->setWindowOpacity(0.7); //透明度

2017-09-25 10:48:32 5998

原创 Qt可拖动窗口的实现

在编写Qt窗口应用程序中,整个窗口的可移动性是十分必要的;实现办法是: 重写窗口的鼠标事件,我们拖动窗口其实就是是鼠标按下,拖动,释放鼠标首先我们需要继承QWidget类 public: QWidget接下来重写鼠标事件:注意写上protected保护继承以及virtual虚继承/*窗体拖动*/ protected: virtual

2017-09-25 10:28:50 3727 3

原创 QT读取mp3的lrc歌词文件不乱码的解决方法

我们用Qt来实现音乐播放器时,一个关键的问题是如何用QString来存放 (*.lrc)文件中的中文或其他国家语言的歌词。       首先我们得了解Qt的内部编码格式以及Windows下lrc文件的编码格式,这样我们才能采取正确的方式获取不乱码的歌词。     Qt的默认编码格式:  Unicode     Windows的默认编码格式: GBK读取lrc歌词文件

2017-09-25 09:35:42 2591

原创 Qt:线程的基本操作

本文参考了《Qt Creator快速入门》中的代码和讲解,若本文未能解答你的问题,请自行查阅书籍和相关资料;QT提供了对线程的支持,这使得我们在多线程编程中可以有效的解决在不冻结当前应用程序用户界面的情况下执行其他操作。       在这里我整理出了一些关于QThread的常用函数和信号 volatile 它是被设计用来修饰被不同线程访问和修改的变量。##QThread 要创建一

2017-05-13 10:37:18 368

原创 Qt:简易的TCP服务器和客户端

请读者注意:该服务器,客户端实现的是简单的消息传递,并不能进行文件传输,在发送和接受消息的函数上进行了极大的简化; (每一个合格的程序员都在耐心的分析每一行代码) 服务器端: 头文件:#ifndef WIDGET_H#define WIDGET_H#include #include #include #include na

2017-05-09 10:19:22 1496

空空如也

空空如也

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

TA关注的人

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