huyc

导航

2012年12月18日 #

Linux避免死锁的一些机制

摘要: 死锁应该有3个原因:1.独占资源2.循环等待3.不可剥夺网上看到的4个条件,实际上还是3个,因为请求和等待导致的死锁毕竟有点让人难堪,实际上的死锁多是因为请求等待导致的循环等待。在用户态,由于Linux提倡进程之间的公平,线程之间甚至没有优先级之分,每个进程/线程都会有机会执行,所以不会出现那种高优先级进程/线程抢占低优先级之后,由于低优先级进程/线程的等待导致的死锁,所以用户态还不需要关心这样的问题。用户态遇到的死锁主要是循环等待,退几步来说,可能就是在临界区sleep的死锁了,查这种死锁很简单,为锁添加计数值就可以。此外,之前提到pthread_mutex_t是具有优先级的,一个优先级比锁 阅读全文

posted @ 2012-12-18 17:24 huyc 阅读(6107) 评论(0) 推荐(0) 编辑