多线程
线程,是执行程序最基本的单元,它有自己栈和寄存器.在十个线程之间来回切换,就意味着有十组栈和寄存器中的值需要不断地被备份、替换。效率比较低
异步方法也不一定新开线程,在主队列开启一个异步线程,就在主线程中执行
最后调用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),任务添加依赖关系,决定任务的执行顺序.
网友评论