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.