十种线程锁

十种线程锁

十种线程锁
我们在使用多线程的时候多个线程可能会访问同一块资源,这样就很容易引发数据错乱和数据安全等问题,这时候就需要我们保证每次只有一个线程访问这一块资源,锁 应运而生。
这里顺便提一下,上锁的两种方式trylock和lock使用场景:
当前线程锁失败,也可以继续其它任务,用 trylock 合适
当前线程只有锁成功后,才会做一些有意义的工作,那就 lock,没必要轮询。
1、OSSpinLock (自旋锁)
2、os_unfair_lock(互斥锁)
3、dispatch_semaphore (信号量)
4、pthread_mutex(互斥锁)
5、NSLock(互斥锁、对象锁)
6、NSCondition(条件锁、对象锁)
7、NSConditionLock(条件锁、对象锁)
8、NSRecursiveLock(递归锁、对象锁)
9、@synchronized()递归锁
10、pthread_mutex(recursive)(递归锁)


<来客推(www.laiketui.com)是国内知名商城系统及商城网站建设提供商,为企业级商家提供零售商城、B2B2C多用户商城系统、社区团购、微信分销系统、小程序商城、商城系统等多端商城网站建设解决方案>

申明:本网站部分文章和图片来源网络编辑,如有侵权及时沟通删除,来客电商原创文章,转载请注明来源。

相关新闻

QR code