互斥锁/自旋锁

为了防止多个线程同时访问一个属性或者变量,最为有效的方式是采用同步锁。

1、同步锁(互斥锁):

@synchronized(self) {
    // 要访问的属性或变量
}

等待的线程处于休眠状态。

2、自旋锁:

OC中的atomic属性采用自旋锁:

@property (atomic, strong) NSObject *obj;

等待的线程处于死循环状态。效率较高。一般用于操作量很小的操作。

你可能感兴趣的:(互斥锁/自旋锁)