間違いあれば指摘していただけると助かります。
例えば
print("A")
DispatchQueue.global().async {
// 重い処理
let result = heavyCalculation()
DispatchQueue.main.async {
// 結果をUIに反映
updateLabel(with: result)
}
}
print("C")
会話
- メインさん:「Aって表示しとくで〜」
- バックグラウンドさん:「重い計算?おう、まかせといてや!終わったらメインさんに言うわ」
- メインさん:「Cもとりあえず表示しとこか〜」
(数秒後)
4. バックグラウンドさん:「終わったで!メインさん、表示頼むわ!」
5. メインさん:「おっしゃ、ラベル更新しとくわ!」
非同期処理と同期処理
同期:前の処理が終わるまで待つ
非同期:全ての処理が終わってから実行