iOS Swift - Grand Central Dispatch (1)

1. What is Task ?

  • Is code block
  • Operates based on FIFO principle

2. Queue

  • Queue includes many Tasks
  • Task can be executed sequentially (Serial Queue) or concurrently (Concurrent Queue)

3. DispatchQueue

#### 3.1 Main Queue - For update user interface

DispatchQueue.main.async() {
   //Code Run On Main Thread
}

#### 3.2 Global Queue (as Concurrent Queue) - For non-UI implementation of tasks

DispatchQueue.global().async() {
   //Fetch Data From API
   //Code Run On Global Thread
}

#### 3.3 Custom Queue (Serial Queue or Concurrent Queue)

let queue = DispatchQueue.global(qos: .background)

queue.sync {
   //Execute A Block Code
}

// qos: (quality of service)
// userInterative (update UI) : serial main queue
// userInitiated (async UI related task) : hight priority global queue
// default: default priority global queue
// utility: low priority global queue
// background: global background queue
// unspecified: low priority global queue

Comments !

Links

Social