在Apple的示例代码中,AVCam-iOS:使用AVFoundation捕获图像和电影,我注意到以下这一行:
// Communicate with the session and other session objects on this queue.
self.sessionQueue = dispatch_queue_create( "session queue", DISPATCH_QUEUE_SERIAL );
Run Code Online (Sandbox Code Playgroud)
我想知道第二个参数是什么以及我们还有哪些其他选项DISPATCH_QUEUE_SERIAL?
令人困惑的是,在其他Apple文档中,它表示第二个参数是保留的,应该设置为NULL.似乎文档已经过时,任何人都可以解释第二个参数应该是什么?
dispatch_queue_create函数有两个参数:队列名称和一组队列属性.队列属性保留供将来使用,应为NULL.并发编程指南
dispatch_queue_t dispatch_queue_create(const char *label, dispatch_queue_attr_t attr);
Run Code Online (Sandbox Code Playgroud)
使用dispatch_queue_create()函数创建队列.与所有调度对象一样,队列被引用计数,新创建的队列的引用计数为1.
可选的label参数用于描述队列的用途,在调试和性能分析期间非常有用.如果提供了标签,则会复制该标签.按照惯例,客户端应传递反向DNS样式标签.例如:
Run Code Online (Sandbox Code Playgroud)my_queue = dispatch_queue_create("com.example.subsystem.taskXYZ", NULL);attr参数指定要创建的队列类型,并且必须是DISPATCH_QUEUE_SERIAL或DISPATCH_QUEUE_CONCURRENT.
| 归档时间: |
|
| 查看次数: |
4190 次 |
| 最近记录: |