解析Objective-C中的锁

在ios开发中常用的锁是NSLock来实现简单的互斥。NSLock的操作有lock,unlock,trylock,lockBeforeDate,故名思意lock和unlock是简单的线程锁,trylock和lockBeforeDate是ios实现的两种不阻塞线程的方法。

trylock的时候并不阻塞线程,如果lock失败的话会返回NO;

lockBeforeDate是用出入日期来决定何时解锁的。


ios中还有递归锁NSRecurisveLock,条件锁NSCoditionLock,分布锁NSDistributeLock.


递归锁NSRecurisveLock:通常用在递归中,不会造成线程阻塞。但是lock和unlock必须成对。


条件锁NSCoditionLock:可以传入一个公共变量作为条件,在不同线程时间达到同步。


分布锁NSDistributeLock:以文件作为锁的条件,可以在不同进程之间访问达到进程同步。


另外ios中还可以使用@synchronize来实现线程互斥。可以用以objc对象来做为不同线程之间的令牌。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值