1. 程式人生 > >多線程安全----同步鎖(互斥鎖)

多線程安全----同步鎖(互斥鎖)

問題 ack zed bre gin back bsp -- font

多條線程搶奪同一資源時,經常需要加鎖,保證同一時間只能有一條線程操作一個資源。

同步鎖就是互斥鎖

格式:@synchronized (token) { }

token:鎖對象,要使用全局的對象,建議使用self

{} 要加鎖的代碼段

註意點:加多把鎖是無效的。 要註意加鎖的位置。

互斥鎖的優點: 能有效防止多線程因搶奪資源造成的數據安全問題

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

互斥鎖使用的前提:多條線程搶奪同一塊資源

相關術語:線程同步

線程同步就是多條線程在同一條線上執行(按順序的執行任務)

互斥鎖就是使用了線程同步技術。

@synchronized (self) {

NSInteger count = self.totalCount;

if (count > 0) {

self.totalCount--;

for (int i = 0; i<1000000; i++) {

}

NSLog(@"票還有%ld張",self.totalCount);

}else{

NSLog(@"票賣完了。。。。");

break;

}

}

多線程安全----同步鎖(互斥鎖)