多线程在Objective-C项目中占有很大的比重,它能提高程序的运行效率,但也因此带来线程安全问题。而锁就是解决线程安全问题最常用的武器。
锁有很多种。
1、NSLock
同个线程,连续两次lock会死锁
NSRecursiveLock
pthread_mutex_t
GCD
信号量
@synchronized
参见:https://www.cnblogs.com/yangwenhuan/p/9193840.html
性能最差
OSSpinLock
自旋锁,性能最好,但是不安全,忙等待
加解锁100w,性能测试
性能差别不大