Comme le dit le document d'Apple, dispatch_get_global_queue() est une file d'attente concurrente, et dispatch_sync est quelque chose qui signifie serial.Then les tâches sont traitées async ou sync?Est-ce que dispatch_sync (dispatch_get_global_queue (xxx), tâche) est synchrone ou async
Répondre
Vous êtes confus entre ce que signifie une file d'attente et ce que signifie synchrone ou asynchrone.
Une file d'attente est une entité sur laquelle des blocs peuvent être exécutés. Ceux-ci peuvent être en série ou simultanés. Serial signifie que si vous mettez un bloc dans l'ordre A, B, C, D, alors ils seront exécutés A, puis B, puis C, puis D. Concurrent signifie que ces mêmes blocs peuvent être exécutés dans un ordre différent et éventuellement même plus d'un en même temps (en supposant que vous ayez plusieurs cœurs sur lesquels exécuter, évidemment).
Puis sur async vs sync. Async signifie que lorsque vous appelez dispatch_async
, il renverra immédiatement et le bloc sera mis en file d'attente dans la file d'attente. Sync signifie que lorsque vous appelez dispatch_sync
, il ne reviendra qu'après l'exécution du bloc. Donc pour répondre complètement à votre question, si vous dispatch_sync
sur une file d'attente concurrente globale, ce bloc sera exécuté, peut-être en parallèle avec d'autres blocs de cette file d'attente, mais de manière synchrone - c'est-à-dire qu'il ne retournera pas jusqu'à le bloc est fini.
d'Apple Doc dit
dispatch_get_global_queue
Renvoie une file d'attente concurrente globale bien connue d'un niveau de priorité donné.
dispatch_queue_t dispatch_get_global_queue ( priorité longue, drapeaux longs non signés);
Paramètres
prioritéLa priorité de la file d'attente en cours de récupération. Pour une liste des valeurs possibles, voir "dispatch_queue_priority_t". flags Cette valeur est réservée pour une utilisation future. Vous devez toujours passer 0. Return Value Renvoie la file d'attente globale demandée.
Discussion
Les ne peuvent pas être modifiées files d'attente concurrentes mondiales bien connues. Les appels à dispatch_suspend, dispatch_resume, dispatch_set_context et n'ont pas d'effet lorsqu'ils sont utilisés avec des files d'attente renvoyées par cette fonction .
Les blocs soumis à ces files d'attente simultanées globales peuvent être exécutés simultanément entre eux en .
Disponibilité Disponible sur iOS 4.0 et versions ultérieures. Déclaré Dans envoi/queue.h
Dans la discussion, ils ont dit that-> « blocs présentés peuvent être exécutés en même temps que l'autre WRT. »
Ainsi les tâches peuvent être traitées Async les unes avec les autres.
- 1. Spring MVC Async tâche s'exécute de manière synchrone
- 2. Est-ce que delayed_job async?
- 3. Mettre en oeuvre la méthode async synchrone
- 4. Réf dans async Tâche
- 5. Est-ce que Thrust est synchrone ou asynchrone?
- 6. comportement dispatch_get_global_queue
- 7. Async Tâche Réseau Erreur
- 8. Async Tâche très lente
- 9. est ko.applyBindings synchrone ou asynchrone?
- 10. Async xmlhttprequests échouant, synchrone ne sont pas
- 11. Discussion de la tâche Async
- 12. Gson Android et Async tâche
- 13. Erreur dans la tâche async
- 14. La méthode Swift Realm Write est Sync ou Async Thread
- 15. Javamail est-il asynchrone ou synchrone?
- 16. C# fonction async que la tâche <int>
- 17. Est-ce que cela peut être fait sans AJAX synchrone?
- 18. Le formulaire est-il synchrone ou asynchrone?
- 19. ByDefault NSURLConnection est synchrone ou asynchrone
- 20. Socket asynchrone ou synchrone
- 21. Wrap une fonction comme une tâche async
- 22. XMLHttpRequest Synchrone ou asynchrone
- 23. Quel est le contexte dans la tâche Async
- 24. arrêt tâche async après 60 secondes
- 25. Messagin asynchrone ou synchrone
- 26. dispatch_barrier_async pas mot avec dispatch_get_global_queue
- 27. Les ORM sont des SGBDR puisque xxx est des cubes OLAP? Est-ce que xxx existe?
- 28. Est-ce que hibernate listener async?
- 29. Est-ce que async reviendra un jour?
- 30. OnPostExecute méthode de Async Tâche non appelée
belle réponse: ') – LuisEspinoza
Merci :-).Il y a certainement de la place pour plus d'explications, mais c'est un début et je répondrai à toutes les questions de @keywind. – mattjgalloway
Merci beaucoup pour la réponse – keywind