ざっくりと理解するSwift同期処理
4136 ワード
概要
同期処理を実装する機会があったのでまとめた
syncとasyncの二種類ある
(7/1 syncの部分がasyncになっていたので修正しました)
async: 他のスレッド処理終了を待機しない
async
DispatchQueue.global().async {
print("global thread start.")
//何か重い処理
print("global thread end.")
}
DispatchQueue.global().async {
print("main thread start.")
//何か重い処理
print("main thread end.")
}
# result
global thread start.
main thread start.
global thread end.
main thread end.
async
start==(Thread 1)==>end
start==(Thread 2)=====>end
いわゆる並列処理
重い処理の裏で別処理を動かしたいときなどに使える
sync: 他のスレッド処理終了を待機する
sync
DispatchQueue.global().async {
print("global thread start.")
//何か重い処理
print("global thread end.")
}
DispatchQueue.global().sync {
print("main thread start.")
//何か重い処理
print("main thread end.")
}
# result
global thread start.
global thread end.
main thread start.
main thread end.
sync
start==(Thread 1)==>end start==(Thread 2)====>end
いわゆる直列処理
クリティカルセクションなどに使える
Author And Source
この問題について(ざっくりと理解するSwift同期処理), 我々は、より多くの情報をここで見つけました https://qiita.com/shiba0410/items/ffd798218489f617fb58著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .