另一个线程是怎么知道互斥量被释放的呢?

自旋锁很好理解,就是不断地轮询,那么互斥锁是通过什么样的机制呢?这样的机制有什么弊端导致在一些场合用自旋锁更好呢?
大话西游666
浏览 700回答 2
2回答

守着星空守着你

并不是线程“知道”,而是等待时会进入阻塞状态,拥有锁的线程在释放锁时需要通知等待线程,这样等待线程才能被唤醒。至于自旋锁,其优点是无需进入阻塞状态,因此节省了阻塞和唤醒的切换开销。但缺点是会一直占用CPU,如果长时间无法获取到锁,反而会增加开销,降低性能。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript