原文:各类锁(互斥锁,自旋锁,读写锁,乐观锁,悲观锁,死锁)

互斥锁 当有一个线程要访问共享资源 临界资源 之前会对线程访问的这段代码 临界区 进行加锁。如果在加锁之后没释放锁之前其他线程要对临界资源进行访问,则这些线程会被阻塞睡眠,直到解锁,如果解锁时有一个或者多个线程阻塞,那么这些锁上的线程就会变成就绪状态,然后第一个变为就绪状态的线程就会获取资源的使用权,并且再次加锁,其他线程继续阻塞等待。 读写锁 也叫做共享互斥锁,读模式共享,写模式互斥。有点像数据 ...

2019-11-27 10:01 0 780 推荐指数:

查看详情

面试官:你说说互斥自旋读写锁悲观乐观的应用场景

前言 生活中用到的,用途都比较简单粗暴,上锁基本是为了防止外人进来、电动车被偷等等。 但生活中也不是没有 BUG 的,比如加锁的电动车在「广西 - 窃·格瓦拉」面前,就是形同虚设,只要他愿意,他就可以轻轻松松地把你电动车给「顺走」,不然打工怎么会是他这辈子不可能的事情呢?牛逼之人,必有牛逼 ...

Thu Oct 22 22:12:00 CST 2020 1 502
面试官:你说说互斥自旋读写锁悲观乐观的应用场景

前言 生活中用到的,用途都比较简单粗暴,上锁基本是为了防止外人进来、电动车被偷等等。 但生活中也不是没有 BUG 的,比如加锁的电动车在「广西 - 窃·格瓦拉」面前,就是形同虚设,只要他愿意,他就可以轻轻松松地把你电动车给「顺走」,不然打工怎么会是他这辈子不可能的事情 ...

Wed Sep 16 04:15:00 CST 2020 4 5901
互斥、递归读写锁自旋区别

互斥 共享资源的使用是互斥的,即一个线程获得资源的使用权后就会将改资源加锁,使用完后会将其解锁,所以在使用过程中有其它线程想要获取该资源的,那么它就会被阻塞陷入睡眠状态,直到该资源被解锁才会别唤醒,如果被阻塞的资源不止一个,那么它们都会被唤醒,但是获得资源使用权的是第一个被唤醒的线程 ...

Tue Aug 06 23:19:00 CST 2019 0 1387
Linux 自旋互斥量(互斥),读写锁

自旋(Spin Lock) 自旋类似于互斥量,不过自旋不是通过休眠阻塞进程,而是在取得之前一直处于忙等待的阻塞状态。这个忙等的阻塞状态,也叫做自旋自旋通常作为底层原语实现其他类型的。 适用场景: 1)被持有的时间短,而且线程不希望在重新调度上花费太多的成本; 2)在非抢占 ...

Wed Sep 01 02:55:00 CST 2021 0 117
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM