block用法总结(随时更新)

dispatch_queue_t :并发

建立方法:async

dispatch_queue_t queue = dispatch_queue_create("myblockqueue",DISPATCH_QUEUE_CONCURRENT);
DISPATCH_QUEUE_CONCURRENT //并发
DISPATCH_QUEUE_SERIAL     //串行

串行的队列也就是添加进去的一个一个block是按顺序执行,好比:spa

    dispatch_queue_t queue = dispatch_queue_create("myblockqueue", DISPATCH_QUEUE_SERIAL);
    
    dispatch_async(queue, ^{ sleep(3); NSLog(@"1"); }); dispatch_async(queue, ^{ NSLog(@"2"); });

结果是:线程

1code

2blog

而并发的队列是:队列

    dispatch_queue_t queue = dispatch_queue_create("myblockqueue", DISPATCH_QUEUE_CONCURRENT);
    
    dispatch_async(queue, ^{ sleep(3); NSLog(@"1"); }); dispatch_async(queue, ^{ NSLog(@"2"); });

结果是get

2class

1queue

还有三种队列是系统定义的队列,根据优先级别不一样有3种:

 
 

  dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); //获取系统的queue

#define DISPATCH_QUEUE_PRIORITY_HIGH 2
#define DISPATCH_QUEUE_PRIORITY_DEFAULT 0
#define DISPATCH_QUEUE_PRIORITY_LOW (-2)

固然,也能够获取主线程队列

相关文章
相关标签/搜索