美文网首页
iOS中的5种锁

iOS中的5种锁

作者: 我的月亮你的心 | 来源:发表于2017-04-12 15:47 被阅读38次

1.自旋锁:OSSpinLock 在ios中已经不是线程安全的了,如果共享数据已经有其他线程加锁了,线程会以死循环的方式等待锁,一旦被访问的资源被解锁,则等待资源的线程会立即执行。(效率最高,如果一直等不到锁会较占用cpu资源)

2.信号锁:dispatch_semaphore是gcd中通过信号量来实现共享数据的数据安全。(效率第二)

3.互斥锁:pthread_mutex ,nslock ,synchronized都是互斥锁。如果共享数据已经有其他线程加锁了,线程会进入休眠状态等待锁。一旦被访问的资源被解锁,则等待资源的线程会被唤醒。(synchronized效率最低)

4.递归锁:pthread_mutex(recursive)与NSRecursiveLock , 多次调用不会阻塞已获取该锁的线程。

5.条件锁:nsconditionlock 满足一定的条件的加锁和解锁,可以实现依赖关系。nscondition条件锁,也是通过信号量来解锁,主要用来实现生产者消费者模式。

相关文章

  • OC--各种线程锁

    参考:正确使用多线程同步锁@synchronized()iOS中的锁iOS多线程安全详解iOS 常见知识点(三):...

  • ios开发中的各种锁机制

    ios开发中的各种锁机制

  • iOS锁系列-目录

    1、 iOS锁系列-NSLock对象锁2、iOS锁系列-NSConditionLock条件锁3、iOS锁系列-NS...

  • iOS 中的锁(4)

    iOS 中的锁(4) 不想篇幅太长,再开一篇继续探究iOS中的锁。 注:本文主要通过Objective-C语言进行...

  • iOS 中的锁(2)

    iOS 中的锁(2) 不想篇幅太长,再开一篇继续探究iOS中的锁。 注:本文主要通过Objective-C语言进行...

  • iOS 中的锁(3)

    iOS 中的锁(3) 不想篇幅太长,再开一篇继续探究iOS中的锁。 注:本文主要通过Objective-C语言进行...

  • iOS开发中的锁

    iOS开发中的锁 本人对锁没有深入理解,只是看了几篇文章,在这里做一下简单的总结。 iOS开发中,锁是用来解决线程...

  • iOS 多线程

    iOS中的各种锁iOS多线程到底不安全在哪里?

  • iOS中锁的分析

    iOS中锁的分析 ** @synchronized ** 递归互斥锁 // objc_sync_enter loc...

  • iOS中的锁

    iOS中的锁 前言 写在前面: 临界区:指的是一块对公共资源进行访问的代码,并非一种机制或是算法。 自旋锁:是用于...

网友评论

      本文标题:iOS中的5种锁

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