自旋鎖和互斥鎖的區(qū)別 mutex實現原理?
mutex實現原理?Muter實現原理:從內存讀取變量值到寄存器向寄存器值加1將寄存器值寫回內存mutex mutex只用于保護關鍵區(qū)域的代碼(訪問共享資源),不用于鎖之間的同步。也就是說,在線程釋放
mutex實現原理?
Muter實現原理:從內存讀取變量值到寄存器
向寄存器值加1
將寄存器值寫回內存
mutex mutex只用于保護關鍵區(qū)域的代碼(訪問共享資源),不用于鎖之間的同步。也就是說,在線程釋放互斥鎖之后,它可能會立即獲得相同的鎖,而不管其他線程是否在等待互斥鎖。
信號量不僅可以保護關鍵區(qū)域,還可以用于鎖同步。也就是說,在線程釋放信號量之后,它將確保等待信號量的線程首先執(zhí)行,而不是立即獲取相同的信號量。
如果兩個線程希望通過鎖輸出1、2、1、2、1、2的序列,則應使用信號量,而互斥可能導致1、1、1、1、2、2、11。