原子操作和互斥量的区别
生活随笔
收集整理的這篇文章主要介紹了
原子操作和互斥量的区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
原子操作和互斥量的區別
原子操作和互斥鎖都是并發編程中常見的技術。
原子操作
原子操作就是操作過程中不能被中斷的過程,在針對某個值得原子操作,在被進行的過程中CPU絕對不會再進行其他的針對該值的操作。原子操作僅會由一個CPU指令代表和完成,原子操作是無鎖的,常常直接通過CPU指令直接實現。其他同步技術實現常常依賴于原子操作。
互斥鎖和原子鎖的區別
嚴格來說互斥鎖是一個數據結構,是寫代碼開發人員人為約束的一種都要遵循的一系列操作。 原子操作是單個不可被打斷的操作,沒有其他線程可以打斷它。
- 原子操作的優勢是更加輕量,可以在不形成臨界區的情況下完成并發安全的值得替換操作。可以大大減少同步對程序性能的消耗。
- 原子操作的劣勢,原子操作是樂觀的,總是假設操作未被改變,在被操作的值被頻繁改變的情況下,原子操作并不那么容易成功,而使用互斥鎖總是趨于悲觀,我們總是假設會有并發的操作要修改被操作的值,因此使用鎖對一系列操作加上臨界區保護。
總結
以上是生活随笔為你收集整理的原子操作和互斥量的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用互斥元保护共享数据-lock_gua
- 下一篇: 【需求工程】需求管理