Leg*_*las 1 multithreading cocoa-touch objective-c grand-central-dispatch ios
我想知道这两者之间的性能差异.
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
// perform complex operation
// dispatch back to main thread to update UI
});
dispatch_async(_myCustomConcurrentQueue, ^{
// perform complex operation
// dispatch back to main thread to update UI
});
Run Code Online (Sandbox Code Playgroud)
我的假设是在整个操作系统和其他应用程序中使用GCD,它需要执行非常快速的后台任务,并且快速完成.创建的自定义队列与GCD是分开的,它们可以运行不同的任务,并在释放后添加回池中.所以我的假设是我的customQueue比复杂操作的GCD表现更好.
你的想法是什么?哪个表现更好?它们是一样的吗?
而高优先级的全局队列理论上可能更快(因为你没有创建队列,略有不同的线程的优先级),这和自己的自定义并发队列之间的差别是不太可能观察到.但是,有两个原因可能是您想要使用自己的自定义队列:
某些功能(尤其是调度障碍)在全局队列中不可用,因此如果您需要这些功能,则需要使用自定义队列.
调试您的应用程序,使用具有有意义名称的自己的队列也很有用,这样您就可以更轻松地识别调试器中的各个线程.
但是,选择高优先级全局并发队列与自定义并发队列没有实质性能原因.
| 归档时间: |
|
| 查看次数: |
1390 次 |
| 最近记录: |