為了防止多個線程同時訪問一個屬性或者變量,最為有效的方式是采用同步鎖。
1、同步鎖(互斥鎖):
@synchronized(self) {
// 要訪問的屬性或變量
}
等待的線程處于休眠狀態。
2、自旋鎖:
OC中的atomic屬性采用自旋鎖:
@property (atomic, strong) NSObject *obj;
等待的線程處于死循環狀態。效率較高。一般用于操作量很小的操作。
為了防止多個線程同時訪問一個屬性或者變量,最為有效的方式是采用同步鎖。
@synchronized(self) {
// 要訪問的屬性或變量
}
等待的線程處于休眠狀態。
OC中的atomic屬性采用自旋鎖:
@property (atomic, strong) NSObject *obj;
等待的線程處于死循環狀態。效率較高。一般用于操作量很小的操作。