Chinaunix首页 | 论坛 | 博客
  • 博客访问: 76370
  • 博文数量: 172
  • 博客积分: 2047
  • 博客等级: 大尉
  • 技术积分: 1745
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-19 15:23
文章分类

全部博文(172)

文章存档

2011年(72)

2010年(100)

我的朋友

分类: C/C++

2011-04-08 09:37:29

1、多线程,如果锁和对象的生命周期是同等的。那么注定在删除对象时遭遇尴尬。使用超过对象生命周期的锁。这里就是大范围的锁。面对大范围的锁,不一定需要敬而远之。得看它的影响。我们实际上唯一无法保障的就是在对象删除之后还在使用对象的锁。
   A: check lock check doing unlock
   B: lock setdeleted unlock destroylock

2、许多实际的情况,可以归纳、合并。抽象、简化。建立一种理论模型。在这个层次上研究问题会更清楚、直观。

3、对象使用锁。删除对象。使用在删除之前那么就应该完全是不会有问题的。这里都是从开始锁的那一刻算起。有争议的情况是,开始了删除操作。这个时候我们检查对象时发现对象依然是存在的。这个时候我们就被
锁住了。
    锁在解开后会有什么样的情况发生。是直接走到destroy 或者还是先解锁其他的线程。这之间有什么样的过程,删除一个对象时如果等待了,那么情况可能就不同了。对象没有被彻底删除。它所设立的标志还在。这个时候锁可能还没有被删除。删除锁会解锁吗?

4、pthread_mutex_trylock() 有这样一个锁,可以用于测试是否有其他的对象想要进入,如果有返回ebusy。可以在destory 使用前来测试一下。然后使用。
阅读(772) | 评论(0) | 转发(0) |
0

上一篇:目录缓存

下一篇:多线程lock测试

给主人留下些什么吧!~~