Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1706936
  • 博文数量: 607
  • 博客积分: 10031
  • 博客等级: 上将
  • 技术积分: 6633
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-30 17:41
文章分类

全部博文(607)

文章存档

2011年(2)

2010年(15)

2009年(58)

2008年(172)

2007年(211)

2006年(149)

我的朋友

分类: LINUX

2008-08-05 12:23:53

有时候基本的锁功能不能满足你的需求,这就要使用更复杂的锁原语。
通常,更复杂的锁原语会比通常的锁更慢一些。所以使用之前要考虑自己的需求。

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) |
给主人留下些什么吧!~~