【Swift】並列処理のためのGCDについて

Swift

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”が実行される。

タイトルとURLをコピーしました