- 関数・メソッドが非同期だと示すために `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)
- タスク間で情報を共有したい時にアクターを使うと安全に情報共有ができる
- 排他的制御のための仕組み
- アクターの可変状態にアクセスできるのは一度にひとつのタスクのみ