2012年11月24日
摘要: 多线程死锁问题前天俺们谈到了加锁,但是在使用加锁的同时又会带来一个问题,就是死锁。什么叫死锁?所谓死锁: 是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。那么为什么会产生死锁呢?1.因为系统资源不足。2.进程运行推进的顺序不合适。3.资源分配不当。学过操作系统的朋友都知道:产生死锁的条件有四个:1.互斥条件:所谓互斥就是进程在某一时间内独占资源。2.请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。3.不剥夺条件:进程已获得资源,在末使用完之前,不能强行剥夺。4.循环等待条件:若干进程之间形成一种头尾相接的循环等 阅读全文
posted @ 2012-11-24 19:10 Simon Han 阅读(16647) 评论(8) 推荐(3)
摘要: C++ Singleton (单例) 模式最优实现written on Thursday, June 4, 2009索引静态化并不是单例 (Singleton) 模式饿汉模式懒汉模式 (堆栈-粗糙版)懒汉模式 (局部静态变量-最佳版)范例代码和注意事项 (最优实现)扩展阅读参考资料我非常赞成合理的使用设计模式能让代码更容易理解和维护, 不过我自己除了简单的单例 (Singleton) 模式外, 其它都很少用 :-)可耻的是, 直到前段时间拜读了C++ In Theory: The Singleton Pattern, Part I, 我才发现自己的单例 (Singleton) 模式写法还有改进 阅读全文
posted @ 2012-11-24 18:49 Simon Han 阅读(279) 评论(0) 推荐(0)