您的位置:首页 > 产品设计 > UI/UE

dispatch_queue_create---创建队列

2016-05-20 17:41 423 查看
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);


这样的说法了!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: