1. async의 파라미터
func async(group: DispatchGroup? = nil,
qos: DispatchQoS = .unspecified,
flags: DispatchWorkItemFlags = [],
execute work: @escaping () -> Void
)
2. group
- DispatchQueue의 async 코드 블록을 묶어서 관리해주는 DispatchGroup
3. qos
- 시리즈의 QualityOfService 문서를 참고
4. flags
- DispatchWorkItemFlags의 값을 받는 파라미터
- 한번에 여러 속성 부여 가능
- assingCurrentContext
- 코드 블록을 실행시키는 context의 속성을 상속
- QoS와 속성을 동일하게 한다.
- concurrent queue 환경에서 장벽, 차단의 역할
- barrier 속성의 코드 블록이 실행되기 전에 실행된 코드들은 환료까지 실행
- barrier 속성의 코드 블록이 실행되기 전까지 다른 코드 블록은 실행되지 않음
- 실행할 코드 블록에 실행중인 context의 속성을 적용하지 않음
- 실행 중인 context의 QoS보다 실행할 코드 블록의 QoS에 더 높은 순위
- 위와 반대
- QoS를 할당하지 않고 코드 블록을 실행
- assingCurrentContext보다 우선시 되는 속성