GCD信号量机制(异步操作)

xiaoxiao2021-02-28  56

dispatch_group_tgroup = dispatch_group_create();

    dispatch_semaphore_tsemaphore = dispatch_semaphore_create(10);

    dispatch_queue_tqueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0);

    for(int i = 0; i < 100;i++ ) {

        dispatch_semaphore_wait(semaphore,DISPATCH_TIME_FOREVER);

        dispatch_group_async(group,queue, ^{

           dispatch_semaphore_signal(semaphore);

       });

    }

某个网完之后才行后面的操作

1.1.           barrier

换成async时,都为1,2,3都执行完成,在执行完0号任务,在执行4,5,6

sync

async

区别:

sync需要等待0结束后,才会继续程序,然后插入4,5,6,然后执行后面的任务

async将自己的任务0插入queue之后,不会等待自己的任务结束,把后面的任务4,5,6插入到queue
转载请注明原文地址: https://www.6miu.com/read-2612538.html

最新回复(0)