我已经看到dispatch_async调用dispatch_async与dispatch_async调用dispatch_sync的常见习语。dispatch_async调用dispatch_async vs dispatch_async调用dispatch_sync
在某些情况下,后者可以用前者代替。问题是,在什么情况下你只能使用一个而不使用另一个?
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
dispatch_async(dispatch_get_main_queue(), ^{
//
});
});
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
dispatch_sync(dispatch_get_main_queue(), ^{
//
});
});
如果没有C代码,逻辑效果是一样的,但实际效果是你保持一个线程占用但什么都不做。 –