互斥鎖/自旋鎖

為了防止多個線程同時訪問一個屬性或者變量,最為有效的方式是采用同步鎖。

1、同步鎖(互斥鎖):

@synchronized(self) {
    // 要訪問的屬性或變量
}

等待的線程處于休眠狀態。

2、自旋鎖:

OC中的atomic屬性采用自旋鎖:

@property (atomic, strong) NSObject *obj;

等待的線程處于死循環狀態。效率較高。一般用于操作量很小的操作。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Java8張圖 11、字符串不變性 12、equals()方法、hashCode()方法的區別 13、...
    Miley_MOJIE閱讀 3,731評論 0 11
  • 第三章 Java內存模型 3.1 Java內存模型的基礎 通信在共享內存的模型里,通過寫-讀內存中的公共狀態進行隱...
    澤毛閱讀 4,383評論 2 22
  • 一、多線程 說明下線程的狀態 java中的線程一共有 5 種狀態。 NEW:這種情況指的是,通過 New 關鍵字創...
    Java旅行者閱讀 4,738評論 0 44
  • 1 臨界區 1.1簡介 在早期計算機系統中,只有一個任務進程在執行,并不存在資源的共享與競爭。隨著技術和需求的飛速...
    Fly晴天里Fly閱讀 9,077評論 2 13
  • 今日閱讀《本田健的快樂致富圣經》 前言感悟: 1.大量閱讀的習慣,閱讀人物傳記及創業者的成功故事。 2.看一個人對...
    小尾巴巨人閱讀 233評論 0 0