✅ actor とは?
Swift 5.5 以降で追加された 並行処理用の型 です。
一見クラスっぽいですが、class ではなく actor を使うことで次の特徴を持ちます。
- 参照型(クラスと同じで参照渡しされる)
- 状態の競合を防ぐ(内部プロパティへのアクセスが自動的に「排他制御」される)
- 複数のタスクから同時に
tokenを読み書きしても安全
- 複数のタスクから同時に
awaitを使ってメソッド呼び出しできる- 他のタスクと同時にアクセスしても、Swift が順序を保証してくれる
✅ クラスとの違い
| 項目 | class | actor |
|---|---|---|
| 型 | 参照型 | 参照型 |
| 継承 | できる | できない |
| スレッド安全性 | 自分で排他制御必要 | 自動的に安全 |
| メソッド呼び出し | obj.method() | await obj.method()(非同期的に呼び出し) |

コメント