📑
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