GCD相关

2017-11-10  本文已影响2人  Vijay_

创建队列

串行队列遵循FIFO先入先出的原则

注意:dispatch_async($queue,$block)并不是立马另起线程执行,而是把任务加入$queue列队,$queue另起线程的执行时间是随机的不与主线程冲突

尽量避免使用dispatch_sync,避免造成线程阻死,当派发任务到当前执行该dispatch_sync线程时会发生阻死,

    dispatch_sync(dispatch_get_main_queue(), ^{ });

使用只写锁dispatch_barrier_async($自定义的并行列队,$block)

快速迭代

//在某个列队执行10次任务  如果是串行列队则添加10个任务到改列队 如果是并行列队则开启10个线程分别执行这10个任务
dispatch_apply(10, queue, ^(size_t index) {
        NSLog(@"%zu",index);
    });
上一篇 下一篇

猜你喜欢

热点阅读