Post

DispatchQueue

DispatchQueue

작업을 비동기적으로 실행할 수 있는 GCD(Grand Central Dispatch) 큐.

멀티쓰레딩이 가능하도록 도와줌.

DispatchQueue의 역할

  • 비동기적으로 실행하게 하여 UI가 멈추지 않도록 한다.
  • 백그라운드에서 실행하여 CPU 리소스를 최적화 해준다.
  • 우선순위(QOS)를 설정하여 중요한 작업을 빠르게 처리한다.

1. DispatchQueue.main

  • 메인쓰레드에서 실행되는 큐

⚠️ UI업데이트는 반드시 메인큐에서 실행.

1
2
3
4
DispatchQueue.main.async {
    // UI 업데이트 (메인 스레드에서 실행)
    self.label.text = "Hello, Swift!"
}

2. DispatchQueue.global(qos: )

  • 멀티쓰레드에서 실행되는 큐
  • 무거운 작업(네트워크 요청, 데이터 처리)을 비동기적(백그라운드)으로 실행할 때 사용.
1
2
3
4
5
6
7
8
9
DispatchQueue.global(qos: .background).async {
    // 백그라운드 작업 (무거운 연산)
    let result = complexCalculation()
    
    DispatchQueue.main.async {
        // 결과를 UI에 반영 (메인 큐에서 실행)
        self.label.text = "\(result)"
    }
}
This post is licensed under CC BY 4.0 by the author.