iOS/Swift
DispatchQueue의 의존성
kihun5393
2021. 9. 5. 17:17
Global의 concurrent 특성
global은 concurrent 특성으로 여러 스레드에서 병행 처리 하기때문에 의존성 있게 데이터 관리를 할 수 없다.
var money = 10000
DispatchQueue.global().async {
buy()
}
DispatchQueue.global().async {
buy()
}
func buy() {
money = money - 1000
print(money)
}
9000
9000
main의 serial 특성
main은 serial 특성으로 다른 하나의 스레드에 작업을 넘겨주기 때문에 의존성 있게 데이터를 처리하게 된다.
var money = 10000
DispatchQueue.main.async {
buy()
}
DispatchQueue.main.async {
buy()
}
func buy() {
money = money - 1000
print(money)
}
9000
8000