본문 바로가기

iOS

Global DispatchQueue, QoS

728x90
반응형
SMALL

DispatchQoS.QoSClass

https://developer.apple.com/documentation/dispatch/dispatchqos/qosclass

 

DispatchQoS.QoSClass | Apple Developer Documentation

Quality-of-service classes that specify the priorities for executing tasks.

developer.apple.com

 

DispatchQoS.QoSClass는 GCD(Grand Central Dispatch)에서 사용되는 QoS(Quality of Service) 클래스를 나타내는 열거형(Enumeration)입니다.

case userInteractive:

사용자 상호작용과 관련된 작업에 대한 품질 등급입니다. 예를 들어 애니메이션, 이벤트 처리 또는 앱의 사용자 인터페이스 업데이트 등이 이에 해당합니다.

case userInitiated:

사용자가 앱을 활성 상태로 사용하는 것을 방해하는 작업에 대한 품질 등급입니다.

case default:

기본적인 품질 등급입니다. 일반적인 작업에 사용됩니다. 응답성과 작업 완료 시간을 균형있게 유지하기 위한 등급입니다.

case utility:

사용자가 활발하게 추적하지 않는 작업에 대한 품질 등급입니다.

case background:

유지 또는 정리 작업에 대한 품질 등급입니다. 앱에서 생성하는 유지 보수 작업에 사용됩니다.

case unspecified:

품질 등급이 지정되지 않은 경우입니다. 품질 등급이 없음을 나타냅니다.

 

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        
        let interactiveQueue = DispatchQueue(label: "interactive", qos: .userInteractive)
        let userInitiatedQueue = DispatchQueue(label: "userInitiated", qos: .userInitiated)
        let defaultQueue = DispatchQueue(label: "default", qos: .default)
        let utilityQueue = DispatchQueue(label: "utility", qos: .utility)
        let backgroundQueue = DispatchQueue(label: "background", qos: .background)
        let unspecifiedQueue = DispatchQueue(label: "unspecified", qos: .unspecified)
        
        interactiveQueue.async {
            print("userInteractive 품질 등급의 큐에서 실행")
        }
        
        userInitiatedQueue.async {
            print("userInitiated 품질 등급의 큐에서 실행")
        }
        
        defaultQueue.async {
            print("default 품질 등급의 큐에서 실행")
        }
        
        utilityQueue.async {
            print("utility 품질 등급의 큐에서 실행")
        }
        
        backgroundQueue.async {
            print("background 품질 등급의 큐에서 실행")
        }
        
        unspecifiedQueue.async {
            print("unspecified 품질 등급의 큐에서 실행")
        }
        DispatchQueue.main.async {
            print("메인 큐에서 실행")
        }
    }
}
728x90
반응형
LIST

'iOS' 카테고리의 다른 글

Tuist에서 xcode 버전 manage  (0) 2023.06.17
ViewBuilder  (0) 2023.06.01
UIKit 화면 상태  (0) 2023.05.18
SwiftUI active, inavtive, background 상태  (0) 2023.05.18
SwiftUI 이미지 캐시처리  (0) 2023.05.11