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
'iOS > Swift' 카테고리의 다른 글
iOS의 비동기 관리 (0) | 2021.09.05 |
---|---|
DispatchQueue.main.sync 사용 시 주의사항 (0) | 2021.09.05 |
DispatchQueue 특징 (0) | 2021.09.05 |
비동기에서의 NSLock() 간단 비교 (0) | 2021.09.05 |
12.2.2. 영화관 정보 API (0) | 2021.09.02 |