知识点积累笔记---互斥锁

在多线程情况下:多个线程要访问同一块资源时,容易引发数据混乱出错 和线程安全等等问题。因此需要给线程加上互斥锁。

方式一:@synchronized互斥锁

//toke必须是全局唯一的  一般用self

//加锁后 会消耗一定的性能

//加锁后的结果:线程同步,多条线程按顺序地执行任务

@synchronized (<#token#>) {

<#statements#>

}

注意:锁定一份代码只用一把锁,多把锁是无效的

方式二:NSLock

lock,加锁

unlock,解锁

tryLock,尝试加锁,如果失败了,并不会阻塞线程,只是立即返回NO

NSLock: 使用注意,不能多次调用 lock方法,会造成死锁

你可能感兴趣的:(知识点积累笔记---互斥锁)