![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
【C++】实战
实战
江湖人称菠萝包
这个作者很懒,什么都没留下…
展开
-
【C++】定位程序崩溃(Mingw)
【C++】定位程序崩溃(Mingw)原创 2022-09-09 21:07:02 · 1920 阅读 · 2 评论 -
【C++】实现线程池
整理自《【C++】《C++ 并发编程实战 (第2版) 》笔记-Chapter9-高级线程管理》1、线程池类,包括 AJoinThreads、AQueueThreadSafe、ATaskType、AStealTaskQueue、AMyThreadPool。其中,AJoinThreads:RAII思想,析构时调用 join() 自动等待所有线程完成。AQueueThreadSafe:基于 std::mutex 的线程安全的 queue,用于存放任务。ATaskType:任务包装类。ASt.原创 2022-05-14 20:02:18 · 1808 阅读 · 4 评论 -
【C++】实现智能指针
【C++】实现智能指针原创 2022-05-14 10:17:10 · 1086 阅读 · 3 评论 -
【C++】实现自旋锁互斥(TAS 算法和 CAS 算法)
自旋锁——代码在循环中“自旋”。自旋锁(spin lock)是一种非阻塞锁,如果某线程需要获取锁,但该锁已经被其他线程占用时,该线程不会被挂起,而是在不断的消耗 CPU 的时间,不停的试图获取锁。互斥量(mutex)是阻塞锁,当某线程无法获取锁时,该线程会被直接挂起,该线程不再消耗CPU时间,当其他线程释放锁后,操作系统会激活那个被挂起的线程,让其投入运行。因此,多核 CPU 才能用自旋锁。其他细节,详看下面代码注释。#ifndef AMYSPINLOCK_H#define AMYS原创 2022-05-06 21:20:29 · 1603 阅读 · 0 评论 -
【C++】基于BitMap产生不重复的10位随机数字串
#include <QCoreApplication>#include <vector>#include <chrono>#include <iostream>// 位图的每一位的0,1标志这个数存在或不存在的状态class BitMap{public: BitMap(size_t nSize = 1024) { vecArray.resize(nSize/32+1); // 加1是为了防止除不尽的时候外.原创 2022-04-13 17:25:22 · 967 阅读 · 0 评论 -
【C++】获取调用函数前后,进程所占物理内存的变化
包含 acheckmemleak.h 头文件,然后使用 CHECK_MEMLEAK 宏定义就行。具体看如下代码:#ifndef ACHECKMEMLEAK_H#define ACHECKMEMLEAK_H#define CHECK_MEMLEAK(nChangeByte) ACheckMemLeak aCheckMemLeak(nChangeByte, __FILE__, __FUNCTION__, __LINE__);#include <QString>#include &.原创 2021-12-17 09:29:34 · 1275 阅读 · 0 评论