반응형
DispatchQueue.global(qos: .userInitiated).async와 DispatchQueue.main.async 모두 비동기적으로 작업을 실행하는 방법 중 두 가지입니다. 하지만 두 방법은 목적과 사용되는 큐의 특성에 따라 차이점이 있습니다.
공통점:
- 두 방법 모두 비동기적으로 작업을 실행하므로, 현재 실행중인 스레드와는 별도의 백그라운드 스레드에서 작업이 실행됩니다.
- 두 방법 모두 클로저를 인자로 받아 실행합니다.
- 두 방법 모두 큐(Queue)를 사용하여 작업을 관리합니다.
차이점:
- DispatchQueue.global(qos: .userInitiated).async는 글로벌 백그라운드 큐에서 실행되며, .userInitiated QoS 클래스를 사용합니다. 이는 중요하고 높은 우선순위의 작업을 실행할 때 사용됩니다.
- DispatchQueue.main.async는 메인 큐에서 실행되며, 메인 스레드와 연결됩니다. 이는 주로 UI 업데이트와 같은 작업에 사용됩니다.
- DispatchQueue.global(qos: .userInitiated).async는 보통 더 많은 양의 작업을 처리하고, 작업이 끝날 때까지 기다리는 것이 필요하지 않습니다.
- DispatchQueue.main.async는 UI 업데이트와 같은 빠른 작업을 처리하며, 보통 다른 큐에서 실행되는 작업의 완료 후 UI 업데이트를 수행하는 등의 동기화 작업이 필요합니다.
반응형
'프로그램 개발해서 돈벌기 > iOS' 카테고리의 다른 글
[Swift] IOS 웹뷰(webview)에 캐쉬(cache) 적용하기 2가지 방법 (0) | 2023.04.28 |
---|---|
swift에서 async와 await 기본 사용법과 http 통신에서 활용 (0) | 2023.02.24 |
swift에서 시간 차이(30분) 계산해서 print로 보기 (0) | 2023.02.22 |
Apple TV 4K 기기 및 시뮬레이터에서 앱 삭제 방법 (0) | 2022.11.29 |
Synchronous operation using await when clicking a Button in SwiftUI and receiving the result through HTTP communication. (0) | 2022.11.24 |
댓글