dispatch_queue_create---创建队列

本文详细介绍了使用dispatch_queue_create创建队列的两种方式,即创建串行队列和并发队列。在OS X v10.7及iOS 4.3之后,可以通过设置第二个参数为NULL或DISPATCH_QUEUE_CONCURRENT来指定队列类型。以前的版本中,必须传入NULL。因此,自定义创建的队列不仅可以是串行的,也可以是并发的,而不仅仅是之前认为的串行队列。此外,还澄清了全局队列的并发性质。

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

dispatch_queue_create(const char *label, dispatch_queue_attr_t attr);

可以看到创建队列的方法有两个参数可以传,默认的创建方式是这样的

    dispatch_queue_t queue = dispatch_queue_create("TreeNewBee_queue", NULL);

后面的参数传入”NULL”就可以了。或许大家都是这样创建串行队列的。但请大家看看dispatch_queue_create这个方法的具体描述

attr    
In OS X v10.7 and later or iOS 4.3 and later, specify DISPATCH_QUEUE_SERIAL (or NULL) to create a serial queue or specify DISPATCH_QUEUE_CONCURRENT to create a concurrent queue. In earlier versions, you must specify NULL for this parameter.

attr在OS X v10.7后来或iOS 4.3及以后,指定DISPATCH_QUEUE_SERIAL(或零)创建一个串行队列或指定DISPATCH_QUEUE_CONCURRENT创建创建并发队列。在早期版本中,您必须指定NULL为这个参数。

翻译已经很清楚了,第二个参数是可以传”NULL”或DISPATCH_QUEUE_SERIAL
创建串行队列
也可以传入DISPATCH_QUEUE_CONCURRENT创建并发队列

总结起来就是这样,除了全局并发队列

    dispatch_queue_t queueglobal = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);

还可以通过

//  创建串行队列
    dispatch_queue_t queue = dispatch_queue_create("TreeNewBee_queue", DISPATCH_QUEUE_SERIAL);
    //  创建并发队列
    dispatch_queue_t queueconcurrent = dispatch_queue_create("com.crediteae.TreeNewBee_queue", DISPATCH_QUEUE_CONCURRENT);

并不是之前说的那种

凡是自己创建的队列都是 串行队列
全局队列只有dispatch_queue_t queueglobal = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);

这样的说法了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值