自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 资源 (6)
  • 收藏
  • 关注

原创 Linux epoll 与 Windows IOCP比较

前言epoll 和 IOCP(IO Completion Ports) 分别是 Linux 和 Windows 系统上的高效网络模型。相比其他网络模型,同样是 polling 方式,这两种模型有如下特点:在系统资源允许下,监控的文件描述符没有上限。多线程同时监视和修改文件描述符是可行的,少量的线程即可实现支持大量连接的服务端程序。这两种模型的事件通知会有一定开销。如果应用程序不需要太多的客户端连接,select 和 poll 是更合适的模型。epoll 和 IOCP 的设计目的是应付成千上万的连接

2022-01-15 23:50:57 2972

原创 C/C++ 实现内存泄露检测之一

前言当动态申请的内存在其管理者(指针)的生命周期结束后,没有被归还给操作系统时,就发生了内存泄露,“泄露”的内存在应用程序退出前无法被访问,且无法被归还。随着程序的持续地运行,“泄露”的内存越多,可用内存就越少,久而久之,应用程序将面临无法再动态申请内存的窘境,更严重将导致程序崩溃。为了避免这种现象的发生,除了在开发过程中进行正确地小心地管理内存外(事实上即使小心谨慎也难免出错),内存泄露检测工具将为我们提供更加有效的保障。该系列将探讨几种内存泄露检测的实现方式。这些实现方式的出发点就是对 mallo

2022-01-09 18:56:26 566

原创 C/C++ 编程中常见的内存错误

前言没有 Java 中垃圾回收机制,也没有 Rust 中的编译期类型检查机制,C/C++ 要求开发人员自己管理内存(合理申请内存,并及时归还),确保内存安全是应用程序开发者的责任。毕竟好的厨子不应该将厨房弄得一团糟;-)C/C++ 程序中各种因内存产生的错误大致有以下几种情况,这些错误一般出现在程序运行期间,有些错误一旦出现,往往是“致命”的。以下示例使用 C 语言风格,其中大部分实例将 malloc/realloc 替换成 new, free 替换成 delete 可以阐释 C++ 中类似的操

2022-01-09 12:06:59 707

原创 单例模式的线程安全

前言单例模式(Singleton)几乎是人尽皆知的设计模式了,它限制一个对象只能实例化一次,且该对象的生命周期一般与整个应用的生命周期一致(否则,单例模式完全可以被普通类对象替代)。单例对象应该允许多线程访问,确保单例对象是线程安全的十分有必要。单例由于其生命周期特点,一般被实现为指针对象或静态对象,下面将分别讨论这两种情况的线程安全实现。静态指针变量下面实现一个基本的单例对象:// Example 1class Singleton{private: Singleton() = de

2021-12-31 22:08:01 6526 2

原创 Linux IO 多路复用(select、poll、epoll)

Linux IO 模型 (select、poll、epoll)1. select 详解及优缺点2. poll 详解及优缺点3. epoll 详解及优缺点

2021-12-30 23:36:56 1065

原创 并发编程笔记

前言在程序设计过程中,难免涉及操作系统、多进程、多线程、数据库等领域。在这些领域内,确保对共享资源的异步操作不出差错,是每个程序开发者必须要考虑的问题。面对并发问题,除了需要谨慎和小心外,引入并发控制策略是解决问题的主要手段,常见的相关技术有锁、互斥量、信号量、原子操作等。一、锁(lock)1.1 概念锁是一个抽象概念,是一种保护共享资源访问的同步化技术。锁有两个操作:acquire 和 release。它一次最多只允许一个线程获取,一旦所有权被某一线程获取,其他线程只能等待该线程释放锁才能访问被保

2021-12-29 22:36:45 348

原创 Modern C++ 变长参数的展开

// 变长参数模板和变长参数// Code 来自 《现代 C++ 教程:高速上手 C++11/14/17/20》一书(欧长坤著),这里作为笔记记录。#include <iostream>#include <string>// 变长参数解包:/*************************//* Method 1: 递归模板函数 *//*************************/// 递归是非常容易想到的一种手段,也是最经典的处理方法。这种方法不断.

2021-02-19 14:44:36 372

原创 OpenCV之离散傅里叶变换

离散傅里叶变换是指傅里叶变换在时域和频域上都呈现出离散的形式,将时域信号的采样变换成为在离散时间傅里叶变换频域的采样。简单来说,对一张图像使用傅里叶变换就是将它分解成正弦和余弦两部分,也就是将图像从空间域转换到频域。在频域里,高频部分代表了图像的细节、纹理信息,而低频部分代表了图像的轮廓信息。傅里叶变换在图像处理中的应用:图像的增强与图像去噪、图像分割之边缘检测、图像特征提取、图像

2016-12-19 11:06:35 828

转载 OpenCV 输入输出XML和YAML文件

目录(?)[-]代码实现运行结果总结输入输出是sequence还是map读写自定义类型用到的类和函数FileStorageFileNodeFileNodeIterator在OpenCV的学习中,经常会用到文件的输入输出,特别是XML和YAML格式的输出文件,如果大家有做过人脸识别就可以体会到,用主分量分析法得到的特征脸、平均脸等等数据都会被保存成

2016-12-18 17:11:27 342

转载 Matlab风格的Plot类 for OpenCV

plot.h 头文件使用说明ploth 头文件使用说明功能说明使用CPlotPlot注功能Matlab style plot functions for OpenCV author libing64 && Jack Dong 原代码地址 : https://github.com/libing64/CPlot

2016-12-16 15:34:02 593

转载 OpenCV Mat属性type,depth,step

Mat的作用The class Mat represents an n-dimensional dense numerical single-channel or multi-channel array. It can be used to store real or complex-valued vectors and matrices, grayscale or color image

2016-12-15 10:08:59 443

Modern-CPP-Programming-Cookbook-Second-Edition-master.zip

Modern-CPP-Programming-Cookbook-Second-Edition-master Packt 出版 仅供学习参考,阅后删除。

2021-02-10

Whole Tomato Visual Assist X 10.9.2341.0

最新版 Visual Assist X, 经测试,支持vs2005-2019。

2019-08-03

graphviz-2.26.3.msi

压缩包内为graphviz-2.26.3.msi,这是很难找的2.26.3版本,最新版本更新较大,对于比较久远的开发程序不适用。

2019-01-09

PID controllers:theory design and tuning(英文原版)高清

本资料为英文原版教材,非网上流传的扫描版,正文文字、图片高清,含目录。

2018-06-05

Digital Image Processing (Third Edition) Rafael C. Gonzalez 原版电子文档-非扫描

冈萨雷斯的经典书籍。内有两个文档:一个书籍电子版,一个课程答案,均为原版电子文档。自己从中受益颇多,低积分分享给大家。

2017-11-05

Python3.6.2中文教程

Python3.6.2中文教程 地址。教程为官方文档的翻译,适合初学者,入门由简到繁。含有Python基础、函数、高级特性、函数式编程、模块、面向对象编程、面向对象高级编程、错误调试和测试、IO编程、进程和线程、正则表达式等章节。

2017-09-26

空空如也

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

TA关注的人

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