① 互斥体会进行进程上下文切换,时间开销较大。所以在临界区较小时用自旋锁,临界区较大时用互斥体。
② 互斥体 可以保护还有肯能引起阻塞的临界区。自旋锁要保护的临界区要绝对避免发生阻塞。因为阻塞意味着进程切换,若果切换后另一个进程又试图获取本自旋锁,死锁就会发生。
③互斥体存在于进程上下文,因此如过在中断中保护共享资源只能使用自旋锁。当然如果要用互斥体,可以用mutex_trylock() 不能获取就直接返回。
互斥体 与 自旋锁 的选择
最新推荐文章于 2022-08-26 10:30:28 发布