- 博客(5)
- 资源 (2)
- 收藏
- 关注
原创 设计模式-observer观察者模式
定义 观察者模式-在对象间定义一对多的依赖关系,这样一来当一个对象的状态更新时,其它对象都能得到通知更新。主题并不需要了解观察者具体实现细节,只需要保证观察者实现了观察者接口即可。观察者模式定义了对象间一对多的关系。即一个主题,多个观察者观察主题的状态变化。主题通过某个公共的接口来通知观察者。不要依赖于特定的通知顺序。除非设计一个能明确通知顺序的主题。一般来说主题...
2018-04-29 23:26:48 296
原创 设计模式-strategy策略模式
引言 关于设计模式有这么几本书可以推荐。<设计模式>这本当然是经典了,但是比较专业深晦,需要有一定的基础再反复琢磨;绝非看过一遍即可束之高阁。<Head First设计模式>即<设计模式>的白话版,文章清晰简介,重点明确;非常适合入门新人。但是<Head First设计模式>例子以java编写,在此给出c++例子,以供c+...
2018-04-27 22:24:49 250
原创 内存泄漏检测原理
众所周知,c/c++语言的内存回收依赖于程序员,并没有python,java之类的自动回收。那么内存是申请释放就是个需要认真对待的问题。因为往往诸如服务器是需要长期运行的,即便轻微的内存泄漏也将可能带来严重问题。而且这种bug还存在着复现周期长,难以定位的问题。 链接器有个选项–wrap,当查找某个符号时,它优先先解析__wrap_symbol, 解析不到才会去解析s...
2018-04-16 00:05:18 2803
原创 友元的互相依赖问题
友元,是一种对非成员函数或类提供私有成员访问权限的机制。以关键字friend声明,通常出现在类的起始或结尾处。但是实际使用中也容易碰到友元声明与定义之间的互相依赖问题。 例子如下,我们对Mutex和Condition Veriable进行封装,由于条件变量的等待函数需要操作原始pthread_mutex_t对象,因此我们需要将条件变量的类声明为Mutex类的友元。我们先...
2018-04-03 22:07:52 827
原创 浅谈pthread退出方式以及清理问题
资源的销毁远比创建来得困难,例如线程。线程终止有很多种方式,如自然退出,显式调用pthread_exit。但是执行退出的时机,线程可能阻塞在如read, write,pthread_cond_wait等接口, 无法自然退出。那么就只好发送cancel信号强行终止了,但是这种强行终止是有代价的,我们需要考虑好线程终止时资源的清理问题。 线程的接收cancel信号的处理...
2018-04-01 22:30:12 8576
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人