通常,使用有名互斥体(named mutex).但是该方案有以下的缺陷互斥体的名称有被其他应用程序使用的较小,潜在风险.此时,该方案不再有效,并且很难检测到bug.该方案无法实现允许一个应用程序产生N个实例这样的一般问题.使用Process类. 1 /// 2 //...
分类:
其他好文 时间:
2014-07-09 23:48:19
阅读次数:
241
使用的基本模板如下(参考APUE):signal代码序列如下,pthread_mutex_lock...pthread_cond_signalpthread_mutex_unlockwait代码序列如下,while (1){ pthread_mutex_lock(&mutex); ...
分类:
其他好文 时间:
2014-07-07 12:16:56
阅读次数:
236
一、互斥量互斥量从本质上说是一把锁,在访问共享资源前对互斥量进行加锁,在访问完成后释放互斥量上的锁。互斥量用pthread_mutex_t数据类型表示,在使用互斥变量以前,必须首先对它进行初始化。可以把它设置为常量PTHREAD_MUTEX_INITIALIZER(只对静态分配的互斥量),也可以通过...
分类:
编程语言 时间:
2014-07-07 08:20:59
阅读次数:
222
#include #include #include #include class semaphore{unsigned int count_;boost::mutex mutex_;boost::condition_variable condition_;public:explicit sema....
分类:
其他好文 时间:
2014-07-01 22:03:34
阅读次数:
474
下面是摘自网络的一段话,我觉得很好;对认识锁很有帮助。
“为什么要加锁?加锁是为了防止不同的线程访问同一共享资源造成混乱。
打个比方:人是不同的线程,卫生间是共享资源。
你在上洗手间的时候肯定要把门锁上吧,这就是加锁,只要你在里面,这个卫生间就被锁了,只有你出来之后别人才能用。想象一下如果卫生间的门没有锁会是什么样?
什么是加锁粒度呢?所谓加锁粒度就是你要锁住的范围是多大。
比如你在家上...
分类:
其他好文 时间:
2014-06-29 23:50:07
阅读次数:
362
本文分析的是llvm libc++的实现:http://libcxx.llvm.org/
C++11中的各种mutex, lock对象,实际上都是对posix的mutex,condition的封装。不过里面也有很多细节值得学习。
std::mutex
先来看下std::mutex:
包增了一个pthread_mutex_t __m_,很简单,每个函数该干嘛就干嘛。
class mutex...
分类:
编程语言 时间:
2014-06-25 19:22:54
阅读次数:
338
(一)先看下面这些代码:
class PrettyMenu {
public:
void changeBackground(istream& imgSrc);
private:
Mutex mutex; //由于这个class希望用于多线程环境,所以它有这个互斥器作为并发控制之用
Image* bgImage; //目前的背景图像
int imageChan...
分类:
编程语言 时间:
2014-06-25 08:35:48
阅读次数:
339
阅读对象本文假设读者有几下Skills[1]在C++中至少使用过一种多线程开发库,有Mutex和Lock的概念。[2]熟悉C++开发,在开发工具中,能够编译、设置boost::thread库。环境[1]Visual Studio 2005/2008 with SP1[2]boost1.39/1.40...
分类:
其他好文 时间:
2014-06-24 10:40:26
阅读次数:
235
摘:Storing Hierarchical Data in a Database Article(翻译版本)原文链接:http://shiningray.cn/hierarchical-data-database.html作者:Gijs Van Tulder翻译:ShiningRay @ Nirv...
分类:
其他好文 时间:
2014-06-22 12:34:12
阅读次数:
327
对象操作Linux APIWindows API线程创建pthread_create()CreateThread()退出pthread_exit()ThreadExit()等待pthread_join()WaitForSingleObject()互斥锁创建pthread_mutex_init()Cr...
分类:
Windows程序 时间:
2014-06-20 17:23:05
阅读次数:
1095