自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 浅析C++写时复制机制(copy-on-write)

写时复制一般是用来节省内存的使用,一般的应用场景在于对象的使用大多的读操作而写操作很少,但是对象又涉及到内存的分配而且需要频繁拷贝对象。这时候写时复制就有大用处了。MFC中的CString就用到了写时复制,当对一个CString进行拷贝时只是拷贝内部的字符串指针。下面可以看一下CString的拷贝构造函数实现 CSimpleStringT(_In_ const CSimpleStringT& strSrc) { CStringData* pSrcData = strSrc.Ge.

2020-08-05 20:13:32 1317

原创 C++设计模式之享元模式

使用场景当程序中使用到大量的类似对象实体时,大部分时候会出现内存不够用的情况。此时我们就可以考虑使用享元模式,一般在符合以下几点情况下来使用。1.是大量的对象 2.注重空间消耗而不是时间消耗 3.对象实体存在多种相同的内在属性。大概思想根据我所总结的就是将对象的大部分相同属性抽离出来实现一个共同属性结构,而其他的不共同属性保留下来让每个对象独立拥有。然后在使用的时候得先找到特有属性的...

2020-05-07 20:35:39 225

原创 Qt利用QFile内存映射实现进程间通信

最近工作上有用到进程通信相关的內容,今天来总结一下,看了网上的大部分内容介绍大体上是通过共享内存来实现,主要是通过QSharedMemory类来访问共享内存,实现共享内存的操作,但是这有个不好的地方就是,当两个进程都detach共享内存时,这个内存就会被回收掉,没法实现类似延时读取的功能。在此,我们可以利用QFile的map函数来进程内存映射文件,其本质上也是模拟共享内存。然后进程间同步呢主要是...

2020-04-29 22:04:55 2684

原创 C++设计模式之模板工厂模式

工厂模式一般分为简单工厂模式,工厂方法模式,抽象工厂模式,不过今天我介绍的是由模板实现的工厂模式,可以实现产品类自动注册到对应的工厂类,完全解耦,并且提供工厂单例访问。fantory.h#pragma once#include <map>#include <string>//产品工具抽象类template<class AbstractProduct...

2020-04-14 20:01:15 1243

原创 C++11实现生产者消费者模型

C++11实现生产者消费者模型生产者消费者模型是什么简单地举个例子,一个线程(或者进程)在往一个区域(可以使内存或其他地方)写数据,而同时有另外一个线程在取数据,这就存在了一个问题,存储的区域有限,数据存满了写数据的线程怎么办,还有数据空了,取数据的线程怎么处理,这时候就需要该模型来处理了。原理存储的数据的区域可以用一个队列来模拟,然后我们通过C++11提供的条件变量来通知写入线程在数据...

2020-04-09 20:18:48 2622 2

Qt进程间通信与同步示例

Qt进程间通信与同步示例,通过QFile内存映射文件来共享内存达到进程间通信的效果。同时利用QSystemSemaphore 来实现进程同步

2020-04-29

空空如也

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

TA关注的人

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