언제 주로 사용?
→ 서버에서 데이터를 내려받는다든지, 이미지, 동영상 등 멀티미디어 처리와 같이 CPU 사용량이 많은 처리를 별도의 Thread 에서 처리한 뒤 Main Thread 로 결과를 전달하여 화면에 표시한다.
Serial
Concurrent
주요 프로퍼티
main : 애플리케이션의 메인 스레드와 연결된 Serial DispatchQueue
를 반환.
class var main: DispatchQueue { get }
label : 대기열(Queue)을 식별하기 위한 문자열 레이블.
var label: String { get }
qos : DispatchQoS
구조체의 타입의 프로퍼티. 대기열 작업을 효율적으로 수행할 수 있도록 여러 우선순위 옵션을 제공합니다.
var qos: DispatchQoS { get }
주요 메서드
sync(execute:) : DispatchQueue
에서 실행을 위해 클로저를 대기열(Queue)에 추가하고 해당 클로저가 완료될 때까지 대기합니다.
func sync(execute block: () -> Void)
async(execute:) : DispatchQueue
에서 비동기 실행을 위해 클로저를 추가하고 즉시 실행합니다.
func async(execute workItem: DispatchWorkItem)
asyncAfter(deadline:execute:) : 지정된 시간에 실행하기 위해 클로저를 DispatchQueue
에 추가합니다. 그리고 지정된 시간이 지나면 바로 실행합니다.
func asyncAfter(deadline: DispatchTime, execute: DispatchWorkItem)
global(qos:) : 시스템의 글로벌 대기열(Queue)을 반환
class func global(qos: DispatchQoS.QoSClass = default) -> DispatchQueue
위 내용은 "https://www.boostcourse.org/mo326/lecture/16917" 을 참고하여 공부한 내용을 정리하였습니다.