📑

Swift Concurrency⑥:TaskPriority (.userInitiated, .background など)とは?

に公開

TaskPriorityって一言で言うと?

このタスクはこんぐらいの重要度ですとシステムに伝えます。

Swift Concurrencyは並列に色々なタスクを同時に処理をします。
その時に処理の優先度を決めるためにTaskPriorityを使います。

Priorityの種類

    public static let high: TaskPriority

    public static var medium: TaskPriority { get }

    public static let low: TaskPriority

    public static let userInitiated: TaskPriority

    public static let utility: TaskPriority

    public static let background: TaskPriority

よく使う代表例

userInitiated

Initiated は”着手された、開始された”と言う意味
つまりユーザーが開始したと言う意味

  • ユーザーが「今すぐ結果を欲しい」とき
  • 例: ボタンを押してサーバーからデータを取る処理
  • 優先度:高め(UI と直結する)

utility

  • ユーザーが結果を必要としているけど「多少時間がかかっても許される処理」
  • 例: ダウンロード・ファイル圧縮・データ変換など
  • 優先度:中くらい

background

  • ユーザーが直接は待っていない処理(裏でやっておけばいい)
  • 例: キャッシュ作成、ログ送信、バックアップ
  • 優先度:低め

あまり使わない、微調整用

high

  • .userInitiated よりは下だけど、それでも高め
  • より細かく調整したいときに使う

medium(デフォルト)

  • 特に急ぎじゃないけど、バックグラウンドほど遅くもない、標準的な優先度
  • 特に指定がなければこれになる

low

  • .background よりは上だけど、ほぼ「気長でOK」レベル

次回は実際に使い方と例を学習します。

Discussion