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次的...