美文网首页
iOS GCD详解(二)

iOS GCD详解(二)

作者: 无言w_y | 来源:发表于2017-11-15 14:06 被阅读61次

使用GCD实现属性的线程安全

本文的完整demo在这里:github
在多线程编程中,如果有多个线程同时在修改或者读取同一个属性(property)的时候,就出现了竞态条件,容易出错。由于同步串行队列的特性,我们如果把属性(property)的存和取代码放在同一个串行队列中,那么就会根据队列的“一次只能执行一个任务”和“先进先出”原则来实现属性的线程安全。

_serialQueue = dispatch_queue_create("com.Charles.YFPGCDDemo", DISPATCH_QUEUE_SERIAL);

- (NSString *)name {
    __weak __block NSString *localSomeString;
    dispatch_sync(_serialQueue, ^{
        localSomeString = _name;
    });
    return localSomeString;
}

- (void)setName:(NSString *)name {
    dispatch_barrier_async(_serialQueue, ^{
        _name = name;
    });
}

相关文章

  • 线程

    iOS 多线程:『GCD』详尽总结 NSThread详解 IOS 多线程编程 『NSOperation、NSOpe...

  • iOS GCD详解《二》

    GCD详解 《一》[https://www.jianshu.com/p/7e83243a12a6]iOS GCD信...

  • iOS多线程相关面试题

    iOS多线程demo iOS多线程之--NSThread iOS多线程之--GCD详解 iOS多线程之--NSOp...

  • 多线程之--NSOperation

    iOS多线程demo iOS多线程之--NSThread iOS多线程之--GCD详解 iOS多线程之--NSOp...

  • iOS多线程之--NSThread

    iOS多线程demo iOS多线程之--NSThread iOS多线程之--GCD详解 iOS多线程之--NSOp...

  • iOS GCD详解(二)

    使用GCD实现属性的线程安全 本文的完整demo在这里:github。在多线程编程中,如果有多个线程同时在修改或者...

  • iOS实录16:GCD使用小结(二)

    iOS实录16:GCD使用小结(二) iOS实录16:GCD使用小结(二)

  • ios知识点(9)多线程

    iOS多线程GCD详解 使用GCD iOS多线程中,队列和执行的排列组合结果分析 存在一点小瑕疵,如果同步(syn...

  • GCD的使用

    GCD的详解iOS多线程--彻底学会多线程之『GCD』 GCD线程之间的通讯 一般在主线程里面刷新UI 点击、滚动...

  • iOS面试相关

    GCD 系列知识总结 NSOperation相关知识总结 iOS Runtime详解 黑魔法 Method_Swi...

网友评论

      本文标题:iOS GCD详解(二)

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