您的位置:首页 > 其它

自旋锁和互斥锁

2016-03-23 18:09 176 查看
自旋锁(Spin Lock):自旋锁是锁中的一种,是对临界资源访问的一种安全设置,为什么称之为自旋,是因为它在无限循环的去申请资源直到临界资源解锁。自旋锁不会引起睡眠(sleep),因为它需要不停地自我旋转,每转一圈就发送一次申请,直到申请被同意才停止,因为在不断的循环,所以要一直占用一个CPU,一般用于多和处理器的计算机。虽然他的运行效率高,但只是对应于短作业,一点长时间申请得不到回复就会大大降低cpu的效率,所以只适用于短作业。

互斥锁(Mutex):互斥锁是一种很常用的锁,在双核cpu上两个线程访问临界资源,线程A先访问并给临界资源加锁,这时线程B也要访问这个资源,但是当线程B申请锁的时候因为临界资源已经被线程A加了锁,线程B申请不到锁,(如果是自旋锁,线程B就会一直循环申请直到线程A释放锁)线程B会阻塞住,并进入等待队列,原先线程B占用的CUP就会去运行其他的线程,提高系统的运行效率。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: