В Xcode 8 beta 5 инициализатор для DispatchQueue
изменился, чтобы принять отдельные аргументы для qos (качество обслуживания), атрибутов и частоты автозапуска. В то время как у меня не было никаких проблем с преобразованием моего кода для работы с новым инициализатором, я не уверен в значении некоторых атрибутов, в частности частоты авторекламы.
Например, в Xcode 8 beta 3 и Swift 3 мне удалось создать серийный DispatchQueue
как таковой:
let serialQueue = DispatchQueue(label: "Concurrent Map", attributes: [.serial, .qosBackground], target: nil)
В Xcode 8 beta 5 и Swift 3:
let serialQueue = DispatchQueue(label: "Concurrent Map", qos: .background, attributes: [], autoreleaseFrequency: .inherit, target: nil)
Мои вопросы:
- В новом DispatchQueue.Attributes,.serial больше не является членом. Означает ли это, что отсутствие .concurrent создает последовательную очередь. Первоначальный тест, который я сделал в Swift Playgrounds, похоже, подтверждает это. Может ли кто-нибудь еще подтвердить?
- Я вижу, что DispatchQueue.AutoreleaseFrequency - это новый тип с .inherit,.never и .workItem. Что это значит? Я провел некоторое исследование GCD и autoreleasing, но я не очень хорошо знаком с концепцией пулов авторефератов.