64 互斥鎖 執行緒通訊 執行緒同步

2021-07-04 20:39:54 字數 940 閱讀 3697

1>互斥鎖:

互斥鎖使用格式

@synchronized(鎖物件)

注意:鎖定1份**只用1把鎖,用多把鎖是無效的

互斥鎖的優缺點

優點:能有效防止因多執行緒搶奪資源造成的資料安全問題

缺點:需要消耗大量的cpu資源

互斥鎖的使用前提:多條執行緒搶奪同一塊資源

執行緒同步的意思是:多條執行緒按順序地執行任務

互斥鎖,就是使用了執行緒同步技術

2>原子和非原子屬性:

oc在定義屬性時有nonatomic和atomic兩種選擇

atomic:原子屬性,為setter方法加鎖(預設就是atomic)

nonatomic:非原子屬性,不會為setter方法加鎖

atomic加鎖原理

@property (assign, atomic) int age;

- (void)setage:(int)age

}3>執行緒間通訊:

什麼叫做執行緒間通訊

在1個程序中,執行緒往往不是孤立存在的,多個執行緒之間需要經常進行通訊

執行緒間通訊的體現

1個執行緒傳遞資料給另1個執行緒

在1個執行緒中執行完特定任務後,轉到另1個執行緒繼續執行任務

執行緒間通訊常用方法

- (void)performselectoronmainthread:(sel)aselector withobject:(id)arg waituntildone:(bool)wait;//wait引數作用是是否等待主線程的run方法執行完之後再繼續執行子執行緒中的**,yes等待,no不等待,同時執行

- (void)performselector:(sel)aselector onthread:(nsthread *)thr withobject:(id)arg waituntildone:(bool)wait;//wait同上

互斥鎖 執行緒的同步與互斥

前面我們驗證了互斥鎖能夠保證執行緒的互斥操作,讓各執行緒對全域性變數的累加的次數保證了正確性執行緒 中 互斥鎖的介面函式 互斥鎖的初始化以及銷毀函式 初始化互斥鎖有兩種方式,一種是函式初始化,引數arr表示的是mutex的屬性,一般為null,設定為預設屬性 另一種是直接定義乙個全域性變數,並用巨集...

執行緒同步互斥通訊問題之互斥

執行緒同步互斥通訊問題之互斥 使用wait 和notify 實現執行緒之間的通訊。要用到同步鎖 同一資料或者同一演算法的方法都盡量放在同乙個類中 程式的健壯性 高類聚 package martina.traditionalthread public class traditionalthreadco...

執行緒的互斥與同步通訊

當多個執行緒同時操作同乙個物件會出現執行緒安全問題 1.使用synchronized 塊及其原理 2.使用synchronized方法 3.分析靜態方法所使用的同步監視器物件是什麼?4.wait與notify實現執行緒間的通訊 用面試寶典中的子執行緒迴圈10次和主線程迴圈5次,兩種交替執行 50次的...