Я читаю Concurrency Руководство по программированию, и все меня пугает.
Я вижу много кода, вызывающего следующее для любой фоновой задачи:
dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
Теперь, что я имею в виду под "фоном", это популярное значение:
Что-то, что выполняется в любом другом месте, кроме основного (UI) потока
Таким образом, следуя документам, приведенный выше оператор возвращает любую очередь без основного потока с разными приоритетами.
Мой вопрос: почему существует DISPATCH_QUEUE_PRIORITY_BACKGROUND
?
В последнее время я также вижу много задач async, используя DISPATCH_QUEUE_PRIORITY_BACKGROUND
специально для выполнения фоновых задач.
Не возвращаются ли очереди с DISPATCH_QUEUE_PRIORITY_DEFAULT
, DISPATCH_QUEUE_PRIORITY_LOW
или DISPATCH_QUEUE_PRIORITY_HIGH
очень сильно от основного потока, если они возвращаются с помощью dispatch_get_global_queue
?
Разве это не фоновые очереди? Какая конкретная цель возвращает очередь с помощью DISPATCH_QUEUE_PRIORITY_BACKGROUND
? Я уже ссылался на это, но это не разъясняет многое, кроме популярного значения, упомянутого выше.
Я уверен, что меня довольно путают со словами - фоновые и фоновые очереди. Если кто-то может объяснить (лучше, графически) - будет большой помощью.