Sobes.tech
Junior — Middle

Millised GCD-s saadaval olevad järjekorratüübid ja kuidas need erinevad käitumise ja kasutamise poolest?

sobes.tech AI

Vastus AI-lt

GCD offers the following types of queues:

  1. Serial Queues

    • Execute tasks sequentially, one after another.
    • Used for synchronizing access to resources and avoiding race conditions.
    • Custom serial queues can be created.
  2. Concurrent Queues

    • Execute multiple tasks simultaneously.
    • There are global concurrent queues with different priorities (QoS).
    • Allow efficient utilization of multi-core systems.
  3. Main Queue

    • A serial queue associated with the main thread of the application.
    • Used for updating the UI and other operations that must be performed on the main thread.

Differences and usage:

  • Serial queues guarantee execution order and prevent concurrent access to shared resources.
  • Concurrent queues increase performance by executing tasks simultaneously.
  • The main queue is mandatory for working with UI in iOS.

Example of creating and using a serial queue:

let serialQueue = DispatchQueue(label: "com.example.serial")
serialQueue.async {
    // Task 1
}
serialQueue.async {
    // Task 2, which will be executed after Task 1
}