NSLock

作者: 张霸天 | 来源:发表于2016-12-26 21:44 被阅读25次

NSLock实现了最基本的互斥锁,遵循了 NSLocking 协议,通过 lock 和 unlock 来进行锁定和解锁。其使用也非常简单

- (void)doSomething {
   [self.lock lock];
   //TODO: do your stuff
   [self.lock unlock];
}

由于是互斥锁,当一个线程进行访问的时候,该线程获得锁,其他线程进行访问的时候,将被操作系统挂起,直到该线程释放锁,其他线程才能对其进行访问,从而却确保了线程安全。但是如果连续锁定两次,则会造成死锁问题。那如果想在递归中使用锁,那要怎么办呢,这就用到了 NSRecursiveLock 递归锁。

相关文章

  • 锁的使用

    一、NSLock 加锁lock 解锁unlock NSLock *lock = [[NSLock alloc]in...

  • iOS常见锁对象

    iOS常见锁对象: 1.互斥锁NSLock NSLock* lock = [[NSLock alloc] init...

  • NSLock

    NSLock实现了最基本的互斥锁,遵循了 NSLocking 协议,通过 lock 和 unlock 来进行锁定和...

  • NSLock

    NSLock NSLock 对象是在应用中用于协调多个线程操作。NSLock对象,可用于间接访问应用程序的全局数据...

  • 多线程-锁的几种实现

    主要内容 NSLock系 @synchronized dispatch_semaphore_t NSLock系 N...

  • NSLock/NSRecursiveLock/NSConditi

    使用NSLock类 在Cocoa程序中NSLock中实现了一个简单的互斥锁。所有锁(包括NSLock)的接口实际上...

  • iOS 常用的锁(Lock)讲解

    转自: iOS 常见知识点(三):Lock NSLock NSLock 遵循 NSLocking 协议,lock ...

  • iOS_Lock

    iOS-Lock 1. NSLock NSLock Apple Guide lock 和 unlock 需要在同一...

  • NSLock/NSConditionLock

    参考文档 参考文档中一共提到8种锁,讲解的很详细。后续可以抽空继续学习。暂且就其中的两种锁作一简单记录: NSLo...

  • NSLock, NSRecursiveLock

    NSLock 这是一个低级别的锁。一旦获取锁,执行则进入临界区,且不会允许超过一个线程并行执行。释放锁则标记临界区...

网友评论

    本文标题:NSLock

    本文链接:https://www.haomeiwen.com/subject/gshsvttx.html