Быстрый ответ: Все из них, ни один из них.
DispatchWorkItemFlags - это набор опций, который настраивает поведение значения DispatchWorkItem , включая его класс качества обслуживания и возможность создания барьера или создания нового отдельного потока.
Когда вы добавляете задание в очередь, DispatchWorkItemFlags дает нам несколько вариантов выбора:
public func sync<T>(flags: DispatchWorkItemFlags, execute work: () throws -> T)
rethrows -> T
public static let barrier: DispatchWorkItemFlags
public static let detached: DispatchWorkItemFlags
public static let assignCurrentContext: DispatchWorkItemFlags
DISPATCH_BLOCK_ASSIGN_CURRENT Указывает, что блок отправки должен
быть назначены атрибуты контекста выполнения, которые являются текущими в
время создания объекта блока. ...
DISPATCH_BLOCK_BARRIER Указывает, что блок отправки должен действовать как
барьерный блок при отправке в очередь DISPATCH_QUEUE_CONCURRENT. ...
DISPATCH_BLOCK_DETACHED Указывает, что должен выполняться блок отправки
отсоединяется от текущих атрибутов контекста выполнения, таких как QoS
class, os_activity_t и свойства текущего IPC-запроса, если
любой. ...
Надеюсь, это помогло!
У тебя очень хороший день!