Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- ribs
- swift documentation
- 리펙토링
- clean architecture
- 클린 코드
- uitableview
- Clean Code
- HIG
- Xcode
- combine
- UICollectionView
- uiscrollview
- rxswift
- MVVM
- 애니메이션
- SWIFT
- 리펙터링
- Observable
- Human interface guide
- ios
- swiftUI
- 리팩토링
- UITextView
- 스위프트
- Refactoring
- map
- RxCocoa
- tableView
- collectionview
- Protocol
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - Swift] DispatchQueue의 종류와 DispatchQueue(qos:) qos의 종류 본문
iOS 응용 (swift)
[iOS - Swift] DispatchQueue의 종류와 DispatchQueue(qos:) qos의 종류
jake-kim 2022. 12. 5. 22:00DispatchQueue의 종류
- main queue (serial queue)
- global queue (concurernt, qos 설정 가능)
- custom queue (디폴트는 serial이며 concurrent로 변경 가능)
global queue
- DispatchQueue.global(qos:)
- global queue는 모두 concurrent queue임을 주의
- qos는 Dispatch.QoS.QoSClass 타입
- concurrent 큐이고 qos 설정이 가능
- qos(quality of service)
// 애니메이션과 같은 UI 즉시 업데이트가 필요하며, 멈춘것처럼 보이지 않는 작업들 (유저의 반응)
DispatchQueue.global(qos: .userInteactive)
// 저장된 문서를 열거나, 유저가 무언가 클릭했을 때 작업을 수행하고 즉각 보여주어야 하는 것 (몇초)
DispatchQueue.global(qos: .userInitiated)
// 기본 서비스 (일반적인 경우 - userInitiated와 utility의 중간정도의 우선순위)
DispatchQueue.global(qos: .default)
// 보통 프로그레스바를 같이 사용하는 작업
DispatchQueue.global(qos: .utility)
// 유저에게 표시되지 않는 동기화, 안정화, 백업과 같은 일
DispatchQueue.global(qos: .background)
- qos에 따라 다른 내부 동작 방법
- 우선순위가 높은 작업일수록 해당 작업이 빠르게 실행도려고 하고, 우선순위가 낮을수록 더 효율적인 CPU 코어를 절약하려고 시도
qos에 관한 더욱 구체적인 내용은 이곳 참고
Custom Queue
- DispatchQueue(label:attributes:) 형태
- label에는 큐의 이름을 정의 (로깅할때 어떤 큐인지 구분에 유리)
- 디폴트는 serial queue이지만 attributes 파라미터에 .concurrent를 넣으면 concurrent queue로 사용
let mySerialQueue = DispatchQueue(label: "myQueue")
let myConcurrentQueue = DispatchQueue(label: "myQueue", attributes: .concurrent)
* 참고
https://tngusmiso.tistory.com/49
https://developer.apple.com/documentation/dispatch/dispatchqos/qosclass
'iOS 응용 (swift)' 카테고리의 다른 글
Comments