nginx源码解析(二)-内存池与内存管理ngx_pool_t

ngx_pool_t是一个非常重要的数据结构,在很多重要的场合都有使用,很多重要的数据结构也都在使用它。那么它究竟是一个什么东西呢?简单的说,它提供了一种机制,帮助管理一系列的资源(如内存,文件等),使得对这些资源的使用和释放统一进行,免除了使用过程中考虑到对各种各样资源的什么时候释放,是否遗漏了释放的担心。 例如对于内存的管理,如果我们需要使用内存,那么总是从一个ngx_pool_t的对象中获...
阅读(224) 评论(0)

nginx源码分析(一)-基础数据结构ngx_str_t

近来想拜读以下优秀的开源代码设计,之前也阅读过qt以及opencv的源码,不过学习nginx源码的目的是想试着用设计模式以及C++的思想来封装一次nginx的源码,但是第一步还得好好熟悉一下nginx,大师们都说过,最好的办法就是看源码,万能的开源。 ngx_str_t定义 ngx_str_t是nginx中定义的类似于字符串的结构,其中包含了字符串的长度(不包含终止字符'\0')以...
阅读(175) 评论(0)

Qxt的使用

Qxt是对Qt的扩展,即对Qt的控件进行一定的补充,类似于Qwt,可能Qwt大家更加熟悉一点,其实本质是一样的,都是对Qt的控件进行相应的补充。我使用的Qt版本是5.5.1,与之配套的是VS2010进行开发。下面将讲解如何对Qxt源码适配于VS2010进行编译,以及如何将生成的qxt库导入到Qt Designer中使用,最后举例说明关于QxtSpanSlider(继承于QSlider,含有两个滑动...
阅读(734) 评论(0)

设计模式(三)单例模式

单例模式在GUI编程中比较常见,很多时候我们都只需要点击按钮只创建一个实例化的窗体,而不是每次点击按钮都创建已经实例化的窗体。所有学好单例模式还是很有用处的。单例模式的一般UML模型表示如下: 单例模式原理及实现 单例模式的基本思想是:保证一个类只有一个实例,并提供一个访问它的全局访问点。首先,需要保证一个类只有一个实例;在类中,要构造一个实例,就必须调用类的构造函数,如此,为...
阅读(121) 评论(0)

设计模式(二)工厂方法模式+抽象工厂模式

工厂方法模式与简单工厂模式的区别在于:简单工厂模式用单一工厂来生产所有同种类的产品,而工厂模式是用对应的工厂来生产同一种类的不同产品。对于工厂方法模式而言,其简单模型的UML为: 工厂方法模式的定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到工厂抽象类的子类。 工厂方法模式的简单模型的代码: #include using namespace st...
阅读(147) 评论(0)

设计模式(一) 简单工厂模式

对于工厂模式,具体上可以分为三类: 简单工厂模式;工厂方法模式;抽象工厂模式。 对于上面的三种工厂模式,从上到下逐步抽象,并且更具一般性。简单工厂模式是应用于生产大量父类子类对象的方法,例如在一个界面中进行简单的加减乘除的操作,我们可以将加减乘除进行抽象,得到一个接口算数类,加减乘除分别实现这个接口类,利用多态性,在工厂类中进行统一的对象生产,从而有利于对象的管理。实际应用场景包括:...
阅读(86) 评论(0)

Qt+opencv 图像目标标定

最近博士师兄在做多目标跟踪,需要对图片中的行人进行标定,按照帧号以及行人的坐标记录按照格式记录在文本文件中,但是手工记录太麻烦,而且相当耗时间,于是乎自告奋勇的帮忙做了一个,花了三个小时左右的时间搞定(大神会不会觉得弱爆了),博士师兄要求的功能大致如下: 1、选择图片坐标,注意是坐标是对应原有的图片坐标,与图片的缩放没有关系。即不管放大缩小多少,右下角的坐标一定对应着原始图片的大小。 2、每选...
阅读(476) 评论(0)

C++中引用(&)的用法和应用实例

最近看Effective C++时,突然发现自己对引用了解不是很深刻,因此搜索了一下,这篇讲解的觉得还可以,分享给大家,原博客地址:C++中引用(&)的用法和应用实例,博文内容如下: 对于习惯使用C进行开发的朋友们,在看到c++中出现的&符号,可能会犯迷糊,因为在C语言中这个符号表示了取地址符,但是在C++中它却有着不同的用途,掌握C++的&符号,是提高代码执行效率和增强代码质量的一个很好的...
阅读(129) 评论(0)

值得学习的C/C++语言开源项目

- 1. Webbench Webbench是一个在Linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行。 下载链接:http://home.tiscali.cz/~cz210552/we...
阅读(461) 评论(0)

Qt中多线程的使用

最近项目中提出了新的需求,需要采集和收集图片。因为是高速相机,按照帧率至少200FPS的速度计算的话,30秒时间的图片也就是6000帧,同时要保持尽量不掉帧。因此这个开发任务就有两个重点: 1、如何能够在收集图片的时候不掉帧,把30秒钟采集到的图片尽可能的采集和收集到; 2、在保存文件时,如何能够保证界面的及时响应,因为需要存放大量的图片,在只有一个线程工作的情况下,势必不能保持界面的良好响应...
阅读(2676) 评论(0)

Unix环境高级编程--多线程(一)

对于刚开始写程序或者在很长一段时间,在编写程序时,我们都只会在一个main函数中进行程序的逻辑执行顺序的编写。在接触GUI程序的设计的时候,很多时候希望有一个前端显示以及后台计算的需求。此时如果以多进程的方式来设计,会设计复杂的进程间通信以及上下文切换的操作,因此开始有线程的概念,此时程序执行的最小单位开始从进程向线程转移,线程称为程序执行的最小单位。 同一个进程内部可以有多个线程,它们共享用一...
阅读(171) 评论(0)

Unix环境高级编程---文件I/O

学习了一段时间Unix环境编程了,看到进程和线程这部分感觉之后,就感觉进步比较缓慢,所以在缓慢的过程中,希望可以多前面的知识进行一定的复习和巩固,希望以写的方式,加深对前面知识的理解。从第三章到第五章都是和文件和I/O相关的。这章总结的是第三章的相关内容。 文件描述符 在Unix系统中,或者对于更加属性的Linux系统中,所有的设备都是用文件来统一定义的。文件描述符就是对文件的一种...
阅读(184) 评论(0)

Qt+OpenCV缩放图像至格子级别以及跟踪鼠标位置

最近需要做一个将图像放大至格子级别以及随着鼠标移动(不需要按下鼠标),实时显示鼠标位置以及对应的RGB的值。因此结合了opencv以及Qt做了一个这样的东西;大致效果如图; 实现的主要的主要思路是,通过OpenCV进行图像的处理和放大,然后转换为QImage在Qt中显示出来。        opencv缩放图像 首先是利用opencv进行图像的放大,利用的函数是resize...
阅读(1404) 评论(0)

qt动画框架(三) 自定义tab滑动导航栏

本章主要介绍用处比较多的tab滑动从而达到窗体的切换功能,其功能类似与QTabWidget。实现的效果图如图所示: 其中tab滑动的效果实现是通过qt的动态框架实现的。 代码如下: #ifndef TABCUSTOME_H #define TABCUSTOME_H #include #include class QPixmap; class QPropertyAnimation; n...
阅读(1159) 评论(0)

LeetCode 20. Valid Parentheses

一个关于堆使用的问题,其实学习过关于二叉树,了解过遍历思想的,应该很容易看到此题的时候,朝这个方向思考,LeetCode 20题的原题是: Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid. The b...
阅读(151) 评论(0)
52条 共4页1 2 3 4 下一页 尾页
    个人资料
    • 访问:71282次
    • 积分:1287
    • 等级:
    • 排名:千里之外
    • 原创:49篇
    • 转载:3篇
    • 译文:0篇
    • 评论:44条
    博客专栏
    最新评论