<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[github_39553168的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/github_39553168</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; github_39553168]]></copyright><item><title><![CDATA[浅析C++写时复制机制（copy-on-write）]]></title><link>https://blog.youkuaiyun.com/github_39553168/article/details/107800783</link><guid>https://blog.youkuaiyun.com/github_39553168/article/details/107800783</guid><author>github_39553168</author><pubDate>Wed, 05 Aug 2020 20:13:32 +0800</pubDate><description><![CDATA[写时复制一般是用来节省内存的使用，一般的应用场景在于对象的使用大多的读操作而写操作很少，但是对象又涉及到内存的分配而且需要频繁拷贝对象。这时候写时复制就有大用处了。
MFC中的CString就用到了写时复制，当对一个CString进行拷贝时只是拷贝内部的字符串指针。
下面可以看一下CString的拷贝构造函数实现

    CSimpleStringT(_In_ const CSimpleStringT&amp; strSrc)
	{
		CStringData* pSrcData = strSrc.Ge.]]></description><category></category></item><item><title><![CDATA[C++设计模式之享元模式]]></title><link>https://blog.youkuaiyun.com/github_39553168/article/details/105980783</link><guid>https://blog.youkuaiyun.com/github_39553168/article/details/105980783</guid><author>github_39553168</author><pubDate>Thu, 07 May 2020 20:35:39 +0800</pubDate><description><![CDATA[使用场景
当程序中使用到大量的类似对象实体时，大部分时候会出现内存不够用的情况。此时我们就可以考虑使用享元模式，一般在符合以下几点情况下来使用。1.是大量的对象 2.注重空间消耗而不是时间消耗 3.对象实体存在多种相同的内在属性。


大概思想
根据我所总结的就是将对象的大部分相同属性抽离出来实现一个共同属性结构，而其他的不共同属性保留下来让每个对象独立拥有。然后在使用的时候得先找到特有属性的...]]></description><category></category></item><item><title><![CDATA[Qt利用QFile内存映射实现进程间通信]]></title><link>https://blog.youkuaiyun.com/github_39553168/article/details/105849400</link><guid>https://blog.youkuaiyun.com/github_39553168/article/details/105849400</guid><author>github_39553168</author><pubDate>Wed, 29 Apr 2020 22:04:55 +0800</pubDate><description><![CDATA[最近工作上有用到进程通信相关的內容，今天来总结一下，看了网上的大部分内容介绍大体上是通过共享内存来实现，主要是通过QSharedMemory类来访问共享内存,实现共享内存的操作，但是这有个不好的地方就是，当两个进程都detach共享内存时，这个内存就会被回收掉，没法实现类似延时读取的功能。在此，我们可以利用QFile的map函数来进程内存映射文件，其本质上也是模拟共享内存。然后进程间同步呢主要是...]]></description><category></category></item><item><title><![CDATA[C++设计模式之模板工厂模式]]></title><link>https://blog.youkuaiyun.com/github_39553168/article/details/105519611</link><guid>https://blog.youkuaiyun.com/github_39553168/article/details/105519611</guid><author>github_39553168</author><pubDate>Tue, 14 Apr 2020 20:01:15 +0800</pubDate><description><![CDATA[工厂模式一般分为简单工厂模式，工厂方法模式，抽象工厂模式，不过今天我介绍的是由模板实现的工厂模式，可以实现产品类自动注册到对应的工厂类，完全解耦，并且提供工厂单例访问。
fantory.h

#pragma once

#include &lt;map&gt;
#include &lt;string&gt;

//产品工具抽象类
template&lt;class AbstractProduct...]]></description><category></category></item><item><title><![CDATA[C++11实现生产者消费者模型]]></title><link>https://blog.youkuaiyun.com/github_39553168/article/details/105418576</link><guid>https://blog.youkuaiyun.com/github_39553168/article/details/105418576</guid><author>github_39553168</author><pubDate>Thu, 09 Apr 2020 20:18:48 +0800</pubDate><description><![CDATA[C++11实现生产者消费者模型

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