- 関数・メソッドが非同期だと示すために `async` を付与する - 非同期関数・メソッドを呼び出すとその処理が完了するまで実行が中断される - 中断される可能性があることを示すために、非同期関数・メソッドを呼び出す場合は `await` を書く - 非同期シーケンス(asynchronous sequence) - `for-await-in` - 処理の開始時に中断する可能性があるループ - 非同期関数を並列に呼び出す方法 - `async let` を使って関数を呼び出すことで並列に処理される - 暗黙的に子タスクを生成する - `await` を使って中断ポイントを示す - 中断ポイント = 全ての結果が揃うことを待つポイント ```swift async let firstPhoto = downloadPhoto(named: photoNames[0]) async let secondPhoto = downloadPhoto(named: photoNames[1]) async let thirdPhoto = downloadPhoto(named: photoNames[2]) let photos = await [firstPhoto, secondPhoto, thirdPhoto] show(photos) ``` - アクター(Actor) - タスク間で情報を共有したい時にアクターを使うと安全に情報共有ができる - 排他的制御のための仕組み - アクターの可変状態にアクセスできるのは一度にひとつのタスクのみ