小驴拉磨之iOS进阶-多线程(8)—— GCD 全局队列

小驴拉磨之iOS进阶-多线程(8)—— GCD 全局队列_第1张图片
11111.jpg

全局队列(本质上并发队列)
在创建全局队列的时候需要两个参数优先级&服务质量

全局队列参数分析
参数1:涉及到系统适配;
iOS 8:服务质量
QOS_CLASS_USER_INTERATCTIVE 用户交互(比较高)
QOS_CLASS_USER_INITIATED 用户需要(不要使用耗时操作)
QOS_CLASS_DEFAULT 默认(给系统重置队列)
QOS_CLASS_UTILITY 使用工具(用了做耗时操作)
QOS_CLASS_BACKGROUND 后台执行
QOS_CLASS_UNSPECIFIED 没有指定优先级 0
iOS 7:调度优先级
DISPATCH_QUEUE_PRIORITY_HIGH 2 高
DISPATCH_QUEUE_PRIORITY_DEFAULT 0 默认
DISPATCH_QUEUE_PRIORITY_LOW -2 低
DISPATCH_QUEUE_PRIORITY_BACKGROUND INT16_MIN 2 后台优先级
在工作中,一般还是没有淘汰iOS 7;
提示:尤其不要现在background,不管是优先级还是服务质量,线程的执行慢到令人发指!
参数2:这是为未来使用的一个保留,现在始终未0;

  • 代码
//全局队列
-(void)GCDSerialQueuesEight {
    
    //全局队列
    /*
     参数1:涉及到系统适配;
     iOS 8:服务质量
     QOS_CLASS_USER_INTERATCTIVE 用户交互(比较高)
     QOS_CLASS_USER_INITIATED    用户需要(不要使用耗时操作)
     QOS_CLASS_DEFAULT           默认(给系统重置队列)
     QOS_CLASS_UTILITY             使用工具(用了做耗时操作)
     QOS_CLASS_BACKGROUND        后台执行
     QOS_CLASS_UNSPECIFIED       没有指定优先级  0
     
     iOS 7:调度优先级
     DISPATCH_QUEUE_PRIORITY_HIGH 2  高
     DISPATCH_QUEUE_PRIORITY_DEFAULT 0 默认
     DISPATCH_QUEUE_PRIORITY_LOW -2 低
     DISPATCH_QUEUE_PRIORITY_BACKGROUND INT16_MIN 2 后台优先级
     
     在工作中,一般还是没有淘汰iOS 7;
     提示:尤其不要现在background,不管是优先级还是服务质量,线程的执行慢到令人发指!
     
     参数2:这是为未来使用的一个保留,现在始终为0;
     */
    
    dispatch_queue_t q = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW,0);
    
    //循环添加10个任务,进入全局队列中
    for(int i = 0;i < 5;i++)
    {
        dispatch_async(q,^{
            NSLog(@"0----%@,%d",[NSThread currentThread],i);
        });
    }
    
    dispatch_queue_t q2 = dispatch_get_global_queue(2,0);
    
    //循环添加10个任务,进入全局队列中
    for(int i = 0;i < 5;i++)
    {
        dispatch_async(q2,^{
            NSLog(@"2----%@,%d",[NSThread currentThread],i);
        });
    }
    NSLog(@"come here");
}

你可能感兴趣的:(小驴拉磨之iOS进阶-多线程(8)—— GCD 全局队列)