async: 非同期処理の宣言
await: 非同期処理の実行。インラインで同期的に記述できる
actor: データ競合を守る型の宣言
Task:
@sendable
: @MainActor
: メインスレッドでの実行を強制するTask { // Thread A
let a = 10
let r = await action(v: a) // Thread B
print(r) // 戻ってきた時に Thread A とは限らない
}
Task { @MainActor in
let a = 10
let r = await action(v: a)
print(r) // @MainActor メインスレッドでの実行が保証される
}
DispatchQueue の場合
do { // このブロックの中は Thread A
let a = 10
let r = DispatchQueue.global().sync { [a] in
return a * 2 // Thread B
}
print(r)
}

