참고 사이트 링크

참고 사이트 링크

 

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

+ Recent posts