QoS (Quality of Service) trong GCD (Grand Central Dispatch) là gì?

{{FormatNumbertoThousand(model.total_like)}} lượt thích
53 lượt xem
Swift senior

Xác định QoS giúp chúng ta phân loại nhiệm vụ của DispatchQueue với mức độ ưu tiên. Bằng cách sử dụng nó đúng cách, chúng ta có thể làm cho ứng dụng của mình trở nên hiệu quả và nhanh nhạy.

QoS có thể được sử dụng với hàm .async() và các mức độ ưu tiên được chia thành bốn loại chính.

  • userInteractive: Được sử dụng cho animation hoặc cập nhật UI.
  • userInitiated: Được sử dụng cho các tác vụ như tải dữ liệu từ API, ngăn người dùng thực hiện các tương tác.
  • utility: Được sử dụng cho các tác vụ mà người dùng không cần theo dõi.
  • background: Được sử dụng cho các tác vụ như lưu dữ liệu trong cơ sở dữ liệu cục bộ hoặc bất kỳ mã bảo trì nào không được ưu tiên cao.
let queue = DispatchQueue(label: "com.swiftpal.dispatch.qos")

// async with background type
queue.async(qos: .background) {
   print("Background Code")
} 

// async with userInitiated type
queue.async(qos: .userInitiated) {
   print("User Initiated Code")
}
{{login.error}}