GCD позволяет отправлять блоки в очередь в соответствии с 4 глобальными очередями приоритетов (высокий, по умолчанию, низкий, фон). У меня есть несколько NSOperationQueues в моем приложении, но вы хотите запускать каждый в другом приоритете. Как я понял, NSOperationQueue является абстракцией над GCD и хотел бы установить разные приоритеты для NSOperationQueue (аналогично очередям приоритетов GCD). Есть ли способ сделать это? (нашел возможным установить приоритет для операции, но не для самой очереди).Устанавливает приоритет NSOperationQueue
ответ
Котировка от NSOperationQueue Class Reference.
Операция в пределах очереди (но еще не выполняется) сами по себе являются организованы в соответствии с уровнями приоритета и между эксплуатацией объектом зависимостей и выполняются соответствующим образом.
Зависимости между операциями обеспечивают абсолютный порядок выполнения для операций , даже если эти операции расположены в разных операционных очередях . Объект операции не считается готовым к выполнению , пока все его зависимые операции не завершили выполнение. Для операций, которые готовы к выполнению, операционная очередь всегда выполняет ту, которая имеет самый высокий приоритет относительно других готовых операций .
Это означает, что при проектировании вы не можете назначить приоритет очереди, но NSOperationQueue будет использовать глобальную очередь GCD для отдельных операций в зависимости от индивидуального уровня приоритета операции.
Попробуйте установить threadPriority
на NSOperations, которые вы добавляете в очередь.
устарел и только для OS X –
Начиная с iOS 8, NSOperationQueue имеет свойство qualityOfService
, которое делает то, что, как я думаю, означает OP. Из Class Reference:
Это свойство определяет уровень обслуживания применительно к эксплуатации объектов добавляется в очередь. Если объект операции имеет явный сервис , это значение используется вместо этого. [...]
Уровни обслуживания влияют на приоритет, с которым объекты операций получают доступ к системным ресурсам, таким как время процессора, сетевые ресурсы, дисковые ресурсы и т. Д. Операциям с более высоким качеством обслуживания уровень получают больший приоритет по сравнению с системными ресурсами, поэтому могут выполнять свою задачу быстрее. Вы используете уровни обслуживания для обеспечения того, что операции, отвечающие на явные пользовательские запросы, даются с приоритетом за менее критическую работу.
Также в прошивке 8, вы можете изменить которые НОД очереди используются с underlyingQueue
собственности, и, следовательно, выбрать глобальную очередь НОДА с нужным приоритетом.
- 1. Как установить приоритет с помощью [[NSOperationQueue new] addOperationWithBlock :?
- 2. NSOperationQueue блокирует несвязанные NSOperationQueue?
- 3. NSOperationQueue против приоритета PTHREAD
- 4. Устанавливает ли SQL-сервер приоритет для операторов выбора и обновления?
- 5. NSOperation cancel и NSOperationQueue
- 6. \ [NSOperationQueue currentQueue \] vs \ [\ [NSOperationQueue alloc \] init \]
- 7. Уведомление NSOperationQueue
- 8. NSOperationQueue Полная
- 9. NSOperationQueue leak?
- 10. NSOperationQueue Выпуск
- 11. NSOperationQueue order
- 12. Сохранение NSOperationQueue
- 13. Остановка NSOperationQueue
- 14. Global NSOperationQueue
- 15. AFNetworking + NsOperationQueue - Загрузить тысячи изображений
- 16. Приоритет автораспада Приоритет
- 17. NSOperationQueue, параллельная работа и поток
- 18. Приоритет?
- 19. Приоритет
- 20. Как я могу установить приоритет в NSOperationQueue для выполнения следующей операции до завершения предыдущего?
- 21. Два одновременные фоновые задачи с использованием NSOperationQueue
- 22. Приоритет данных данных/приоритет столбца
- 23. Lex приоритет приоритет этикетка опкод
- 24. Добавление NSOperationQueue к NSOperation
- 25. NSOperationQueue и одновременная работа
- 26. NSOperationQueue и ASIHTTPRequest
- 27. NSOperationQueue не завершает операции?
- 28. NSOperation существует в NSOperationQueue
- 29. NSOperationQueue serial FIFO queue
- 30. NSOperationQueue партии SLRequests
no, NSOperationQueue использует только одну глобальную очередь GCD, приоритетную по умолчанию. Концепция приоритета NSOperation не связана. – das
Я не утверждал, что он использует глобальную очередь GCD с разными уровнями приоритета. Я сказал и хотел сказать, что он выполняет задачи, которые зависят от индивидуального уровня приоритета работы. @das – svena
ok, ваше упоминание о глобальных очередях GCD (множественное число) привело меня к этому впечатлению – das