美文网首页
iOS多线程编程——GCD与NSOperation

iOS多线程编程——GCD与NSOperation

作者: zhouluyao | 来源:发表于2016-06-06 10:46 被阅读20次

    多线程

    线程,是执行程序最基本的单元,它有自己栈和寄存器.在十个线程之间来回切换,就意味着有十组栈和寄存器中的值需要不断地被备份、替换。效率比较低

    异步方法也不一定新开线程,在主队列开启一个异步线程,就在主线程中执行

    最后调用dispatch_group_notify,标示执行的分组中的任务全部执行完毕了,属于这个 group 的任务是否已经全部执行完,如果是则返回 0,否则返回非 0。

    dispatch_group_wait(group: dispatch_group_t, _ timeout: dispatch_time_t) -> Int

    有DISPATCH_TIME_NOW和DISPATCH_TIME_FOREVER两个参数值,前者表示立刻检查属于这个 group 的任务是否已经完成,后者则表示一直等到属于这个 group 的任务全部完成。

    dispatch_after,需要注意的是和dispatch_after仅表示在指定时间后提交任务,而非执行任务。

    dispathc_once函数可以确保某个 block 在应用程序执行的过程中只被处理一次,而且它是线程安全的。

    开始执行dispatch_barrier_async中的任务,这时候即使向并行队列提交任务,也不会执行

    dispatch_barrier_async中的任务执行完成后,并行队列恢复正常。

    operation2.addDependency(operation1),任务添加依赖关系,决定任务的执行顺序.

    相关文章

      网友评论

          本文标题:iOS多线程编程——GCD与NSOperation

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