为了防止多个线程同时访问一个属性或者变量,最为有效的方式是采用同步锁。
1、同步锁(互斥锁):
@synchronized(self) {
// 要访问的属性或变量
}
等待的线程处于休眠状态。
2、自旋锁:
OC中的atomic属性采用自旋锁:
@property (atomic, strong) NSObject *obj;
等待的线程处于死循环状态。效率较高。一般用于操作量很小的操作。
为了防止多个线程同时访问一个属性或者变量,最为有效的方式是采用同步锁。
@synchronized(self) {
// 要访问的属性或变量
}
等待的线程处于休眠状态。
OC中的atomic属性采用自旋锁:
@property (atomic, strong) NSObject *obj;
等待的线程处于死循环状态。效率较高。一般用于操作量很小的操作。
本文标题:互斥锁/自旋锁
本文链接:https://www.haomeiwen.com/subject/thmjsxtx.html
网友评论