iOS-21-多线程

作者: 小东门儿 | 来源:发表于2017-02-23 13:58 被阅读30次

    3种线程对比:

    NSThread:

    –优点:NSThread 比其他两个轻量级,使用简单
    –缺点:需要自己管理线程的生命周期、线程同步、加锁、睡眠以及唤醒等。线程同步对数据的加锁会有一定的系统开销
    

    GCD:

    –Grand Central Dispatch是由苹果开发的一个多核编程的解决方案。iOS4.0+才能使用,是替代NSThread, NSOperation的高效和强大的技术
    –GCD是基于C语言的
    - NSOperation对象在创建或释放过程中会消耗明显的CUP资源
    - 使用Block后代码比使用NSOperation,NSThread更简洁。
    - dispatch_group , barrier.
    - 条件锁类似于nsoperation中的依赖关系
    - 信号量类似于nsoperationqueue中的最大并发量
    

    NSOperation:

    –不需要关心线程管理,数据同步的事情,可以把精力放在自己需要执行的操作上
    –NSOperation是面向对象的
    – 很容易设置两个NSOperation之间的依赖来让某一个操作在上一个操作完成后才执行。
    – 方便设置在同一时间运行的操作个数
        – 可以创建操作,支持在第一时间被取消
    

    常见的锁:放在子线程内部,如果放在外面相当于实在主线程加锁

    @synchronized(对象)对象锁
    NSLock 互斥锁
    NSConditionLock 条件锁
    NSRecursiveLock 递归锁      

    相关文章

      网友评论

        本文标题:iOS-21-多线程

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