Structure

TaskPriority

The priority of a task.

Declaration 宣言

struct TaskPriority

Overview 概要

The executor determines how priority information affects the way tasks are scheduled. The behavior varies depending on the executor currently being used. Typically, executors attempt to run tasks with a higher priority before tasks with a lower priority. However, the semantics of how priority is treated are left up to each platform and Executor implementation.

Child tasks automatically inherit their parent task’s priority. 子タスクそれらは、自動的にそれらの親タスクのもつ優先度を継承します。 Detached tasks created by detach(priority:operation:) don’t inherit task priority because they aren’t attached to the current task.

In some situations the priority of a task is elevated — that is, the task is treated as it if had a higher priority, without actually changing the priority of the task:

  • If a task runs on behalf of an actor, and a new higher-priority task is enqueued to the actor, then the actor’s current task is temporarily elevated to the priority of the enqueued task. This priority elevation allows the new task to be processed at the priority it was enqueued with.

  • If a a higher-priority task calls the get() method, then the priority of this task increases until the task completes.

In both cases, priority elevation helps you prevent a low-priority task from blocking the execution of a high priority task, which is also known as priority inversion.

Topics 話題

Type Aliases 型エイリアス

Initializers イニシャライザ

Instance Properties 様々なインスタンスプロパティ

Instance Methods インスタンスメソッド

Operator Functions 演算子関数

Relationships 関係

Conforms To 次に準拠

See Also 参照

Tasks さまざまなタスク