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 !