Swift 5.5からSwiftは並行処理を言語機能としてサポートするようになりました。それがSwift Concurrencyです。本書はその機能を解説しています。
async/awaitにより、非同期処理をクロージャーよりも完結に記述できます。データ競合を防ぐ新しい型としてActorやデータ競合が発生しない型を表すSendableが登場しました。並行処理の実行単位であるTaskもあります。Swift ConcurrencyはWWDC 2021の目玉機能といっても過言ではありません。
Swift Concurrencyの概要が一冊で日本語で理解できるのが本書の特徴です。Swift Concurrencyには覚えなければいけない概念が数多くあります。
async、await、Actor、MainActor、Task, TaskGroup、AsyncSequence、Sendableなどなど。本書は一冊でSwift Concurrencyの概要をほぼ全て網羅しています。各章にそれぞれサンプルコードが付属しているので、どんな動作をするのかを試して理解を深められます。
【目次】
第1章 async/await
第2章 Actor/データ競合を守る新しい型
第3章 AsyncSequence
第4章 Task
第5章 Sendable
第6章 既存のプロジェクトにSwift Concurrencyを導入
目次プレビュー
- はじめに
- 第1章 async/await
- 第2章 Actor/データ競合を守る新しい型
-
本書の構成
-
対象読者
-
動作環境
-
サンプルコード
-
表記関係について
-
1.1 クロージャーのコールバックによる非同期処理の問題点
-
1.2 async/awaitで解決する
-
1.3 プログラムの待機可能性とは?
-
1.4 async/awaitの文法
-
1.5 順列実行と並列実行
-
1.6 クロージャー形式のメソッドを非同期関数にラップする
-
1.7 withCheckedContinuation
-
1.8 withCheckedThrowingContinuation
-
1.9 resumeメソッドは必ず1回実行する
-
1.10 まとめ
-
3.1 iOS 15のAPIを利用する
-
3.2 カスタム定義
-
3.3 AsyncStream/既存コードに適応
-
3.4 まとめ
-
4.1 Structured Concurrency
-
4.2 タスクツリー
-
4.3 タスクグループ
-
4.4 エラーが発生しないタスクグループ
-
4.5 エラーが発生するタスクグループ
-
4.6 協調的なキャンセル
-
4.7 async letバインディング
-
4.8 Unstructured Concurrency
-
4.9 下位階層にStructured Concurrencyがある場合
-
4.10 各タスクの特徴比較
-
4.11 まとめ
-
5.1 Sendableプロトコル
-
5.2 @Sendable属性
-
5.3 Swift 6への準備
-
5.4 @preconcurrency
-
5.5 Xcode 13.4の変更
-
5.6 まとめ