GCDとは?
GCDとは、Grand Central Dispatchの略称であり、
複数のタスクを並列で実行するためのフレームワーク。
システムが自動的にタスクをスケジュールし、CPUやメモリの使用を最適化することが可能⭐️
GCDの種類
GCDを使用するには、タスクを実行するキューを作成する
キューの種類
Serial Queue
一度に1つのタスクしか実行しないキュー。
タスクは順番に実行される。
Concurrent Queue
複数のタスクを同時に実行できるキュー。
タスクの実行順序は保証されない。
Main Queue
UIの更新など、メインスレッドで実行する必要があるタスクを実行するためのキュー。
Serial Queueの一種。
Serial Queue 使用例
1. Serial Queueを作成
let serialQueue = DispatchQueue(label: "com.example.serial")
2. キューに実行するタスクを追加します。
serialQueue.async {
print("Task 1")
}
serialQueue.async {
print("Task 2")
}
“Task 1″と”Task 2″が順番に実行される。
Concurrent Queue 使用例
1. Concurrent Queueを作成
let concurrentQueue = DispatchQueue(label: "com.example.concurrent", attributes: .concurrent)
2. キューに実行するタスクを追加
concurrentQueue.async {
print("Task 1")
}
concurrentQueue.async {
print("Task 2")
}
“Task 1″と”Task 2″が並行して実行される。
Global Queue
1. Concurrent Queueを作成
let globalQueue = DispatchQueue.global(qos: .background)
2. グローバルキューにタスクを追加
globalQueue.async {
print("Background task")
}
グローバルキュー上で”Background task”が実行される。
Main Queue 使用例
1. Main Queueを作成
let mainQueue = DispatchQueue.main
2. Main Queue上で実行するタスクを追加
mainQueue.async {
print("MainQueue task")
}
メインスレッドで”MainQueue task”が実行される。