GCD之Apple推崇的多线程管理策略

本文介绍了Apple的Grand Central Dispatch(GCD)多线程管理策略,包括三种队列:主线程执行的主调队列、子线程并行执行的全局队列以及可自定义并行或串行执行的自定义队列,并展示了如何使用这些队列进行同步、异步及延迟执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//GCD:Grand Central Dispatch,大中央调度,是Apple推崇的多线程管理策略,是通过队列 对多线程进行管理
    //第一种队列
    //主调队列,在主线程中执行,并且是串行(一次操作一个)
    dispatch_queue_t mainQueue = dispatch_get_main_queue();
    //第二种队列
    //全局队列,在子线程中执行,并且是并行(一次执行多个)
    //参数1:设置队列的优先级(high,default,low,background)
    //参数2:预留参数,未来使用
    dispatch_queue_t globalQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
    //第三种队列
    //自定义队列,在子线程中执行,可以设置并行或串行
    //参数1:区分队列的唯一标识,是一个可选项,如果不写就写NULL.如果写的话就必须规范的例子:"com.example.myqueue"
    //参数2:是设置并行 DISPATCH_QUEUE_CONCURRENT 或串行的DISPATCH_QUEUE_SERIAL(NULL)
    dispatch_queue_t customQueue = dispatch_queue_create("com.example.myqueue", NULL);
    NSLog(@"%@%@%@",mainQueue,globalQueue,customQueue);
    
    //同步执行sync(需要等待执行完毕);
    //参数1:指定队列
    //参数2:Block,执行的操作
//    dispatch_sync(globalQueue, ^{
//        [self banZhuanPlus];
//    });
    //异步执行async(不需要等待执行完毕)
    dispatch_async(globalQueue, ^{
        [self banZhuanPlus];
    });
    
    //延迟执行
//    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
//        <#code to be executed after a specified delay#>
//    });

    //单例Pen.h文件

(可以整片直接复制使用)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值