我已經看到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代碼,邏輯效果是一樣的,但實際效果是你保持一個線程佔用但什麼都不做。 –