美文网首页
IOS 多线程锁

IOS 多线程锁

作者: 爩龘 | 来源:发表于2017-10-27 16:40 被阅读13次

IOS 中锁是最常用的同步工具,一段代码在同一个时间只能允许被有限个线程访问,比如 A线程进入需要保护的代码之前需要先添加简单的互斥锁,另一个线程B就无法访问,只有等待前一个线程A执行完被保护的代码后解锁,B线程才能访问被保护的代码

下面将列举IOS中常用的锁

1:OSSSpinLock:

1:NSLock 可以理解为 互斥锁 

NSLock *lock = [[NSLock alloc] init];

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

[lock lock];

sleep(3);

NSLog(@"NSLock 1");

[lock unlock];

NSLog(@"NSLock 1解锁成功");

});

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

[lock lock];

NSLog(@"NSLock 2");

sleep(2);

[lock unlock];

NSLog(@"NSLock 2解锁成功");

});

2017-10-20 11:33:44.278809+0800  [12742:2542290] NSLock 1

2017-10-20 11:33:44.279151+0800 [12742:2542290] NSLock 1解锁成功

2017-10-20 11:33:44.279119+0800 [12742:2542289] NSLock 2

2017-10-20 11:33:46.284416+0800 [12742:2542289] NSLock 2解锁成功

相关文章

  • 起底多线程同步锁(iOS)

    起底多线程同步锁(iOS) 起底多线程同步锁(iOS)

  • 多线程 (三)iOS中的锁

    ios 多线程--锁

  • OC--各种线程锁

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

  • iOS 多线程

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

  • GCD练习

    GCD练习 ios 多线程 GCD : ios 多线程 全剧队列,异步执行 线程间通信 信号量 文件锁 单利模式 ...

  • iOS 多线程

    参考链接 iOS多线程iOS 多线程:『GCD』详尽总结iOS简单优雅的实现复杂情况下的串行需求(各种锁、GCD ...

  • iOS中的锁

    起底多线程同步锁(iOS) OSSpinLock NSLock NSRecursiveLock 同步 NSCond...

  • iOS端sqlite3 的线程安全

    sqlite3 多线程和锁 ,优化插入速度及性能优化这篇博客,着重介绍了sqlite3 多线程和锁。这里针对iOS...

  • iOS中的锁

    锁是一种同步机制,用于多线程环境中对资源访问的限制iOS中常见锁的性能对比图(摘自:ibireme): iOS锁的...

  • iOS 多线程,自旋锁和互斥锁详解

    iOS 多线程,自旋锁和互斥锁详解[https://www.jianshu.com/p/a49739c41bac]...

网友评论

      本文标题:IOS 多线程锁

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