iOS GCD: Unterschied zwischen einer globalen Warteschlange und der mit Hintergrundpriorität (DISPATCH_QUEUE_PRIORITY_BACKGROUND)?

Lese ich Concurrency Programming Guide und die Dinge verwirren mich.

Ich sehe eine Menge von code aufrufen der folgenden für irgendwelche hintergrund-task:

dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);

Nun, was meine ich mit 'hintergrund' ist die populäre Bedeutung:

Etwas ausgeführt wird, an anderer Stelle als dem Haupt (UI) - thread

Also nach den docs, die obige Anweisung gibt alle nicht-Haupt-thread-Warteschlange mit unterschiedlichen Prioritäten.

Meine Frage ist - warum wird dann DISPATCH_QUEUE_PRIORITY_BACKGROUND vorhanden???
In letzter Zeit sehe ich auch viele von asynchronen Aufgaben mithilfe von DISPATCH_QUEUE_PRIORITY_BACKGROUND speziell zum ausführen von hintergrund-tasks.

Nicht Warteschlangen kehrte mit DISPATCH_QUEUE_PRIORITY_DEFAULT, DISPATCH_QUEUE_PRIORITY_LOW oder DISPATCH_QUEUE_PRIORITY_HIGH laufen sehr viel Weg von den Haupt-thread, wenn Sie wieder mit dispatch_get_global_queue?

Nicht Sie hintergrund-Warteschlangen? Welchen konkreten Zweck hat eine Warteschlange zurückgegeben mit DISPATCH_QUEUE_PRIORITY_BACKGROUND dienen? Ich habe bereits dies bezeichnet aber nicht viel klären, andere als die beliebte Bedeutung, die ich oben erwähnt.

Ich bin sicher, ich bin ziemlich verwirrt mit Worten - hintergrund und hintergrund-Warteschlangen. Wenn jemand erklären kann, (besser, grafisch) - wird eine große Hilfe sein.

Kommentar zu dem Problem
Ich könnte auch verweisen Sie auf WWDC 2014 video - Strom, - Leistung und-Diagnostik: Was ist neu in GCD und XPC, die Spaziergänge durch die neuen QoS framework (iOS 8, Mac OS X 10.10) für die queue-Prioritäten, einschließlich der business-Logik für die Auswahl eines QoS-level über den anderen. Das schließt eine Zuordnung zu den alten dispatch-queue-Prioritäten, die möglicherweise hilfreich für die Auswahl der entsprechenden Warteschlange Priorität. Kommentarautor: Rob
+1 danke, ich war auf der Suche nach etwas ähnlichem, aber war sich nicht sicher, wo zu suchen. Wird check it out. Kommentarautor: Nirav Bhatt
Beachten Sie auch, dass QoS ist ein separates Konzept aus der Priorität bands des globalen concurrent queue - obwohl auf der Oberfläche Sie sehen sich ähnlich, die Umsetzung ist anders und die Semantik unterschiedlich sind. Kommentarautor: quellish
Nein, die alte Priorität bands zugeordnet sind direkt von QoS-Klassen und nicht ein separates Konzept und haben keine andere Semantik, finden Sie unter der WWDC-session auf den oben verwiesen wird Kommentarautor: das
sicher, QoS ist ein umfassenderes Konzept, das die alten global-queue-Prioritäten, aber dort, wo die Begriffe überschneiden sich, Sie sind identisch in der Wirkung, und die Umsetzung in den überlappenden Bereichen identisch ist (es ist eine direkte Zuordnung von alt -> neu). Kommentarautor: das

InformationsquelleAutor der Frage Nirav Bhatt | 2014-07-31

Schreibe einen Kommentar