iOS常见锁对象

iOS常见锁对象:

1.互斥锁NSLock

NSLock* lock = [[NSLock alloc] init];

[locklock];

//处理操作

[lockunlock];

2.对象锁@synchronized(self)

staticNSObject*obj =nil;

@synchronized(self)

{

if(obj ==nil) {

obj = [[NSObjectalloc]init];

}

returnobj;

3.条件锁NSConditionLock

//条件锁

NSConditionLock*lock = [[NSConditionLockalloc]initWithCondition:1];

//任务

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0), ^{

//加锁

[locklockWhenCondition:1];

NSLog(@"-------任务1");

//解锁

[lockunlockWithCondition:2];

});

//任务

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0), ^{

//加锁

[locklockWhenCondition:2];

NSLog(@"-------任务2");

//释放锁

[lockunlock];

});

4.递归锁NSRecursiveLock

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容