actor

✅ actor とは?

Swift 5.5 以降で追加された 並行処理用の型 です。
一見クラスっぽいですが、class ではなく actor を使うことで次の特徴を持ちます。

  1. 参照型(クラスと同じで参照渡しされる)
  2. 状態の競合を防ぐ(内部プロパティへのアクセスが自動的に「排他制御」される)
    • 複数のタスクから同時に token を読み書きしても安全
  3. await を使ってメソッド呼び出しできる
    • 他のタスクと同時にアクセスしても、Swift が順序を保証してくれる

✅ クラスとの違い

項目classactor
参照型参照型
継承できるできない
スレッド安全性自分で排他制御必要自動的に安全
メソッド呼び出しobj.method()await obj.method()(非同期的に呼び出し)

コメント

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