有时候基本的锁功能不能满足你的需求,这就要使用更复杂的锁原语。
通常,更复杂的锁原语会比通常的锁更慢一些。所以使用之前要考虑自己的需求。
Read/Write Locks(读/写锁)
有时候你会发现一个共享的数据结构经常被读,但很少被写。在频繁读的时候使用锁结构就有点浪费资源。
Monitor
为了阻止你忘掉释放锁结构而带来的死锁发生。引用了一种Monitor(C++)
class Monitor
{ pthread_mutex_t* mutex;
public:
Monitor(pthread_mutex_t* m){
mutex=m;
pthread_mutex_lock(mutex);
};
virtual ~Monitor(){
pthread_mutex_unlock(mutex);
};
}
void bar()
{
Monitor m;
//do something
...
//destructor will unlock
}
这个在《巧妙的C++同步》一文中有详细论述。
阅读(1175) | 评论(0) | 转发(0) |