//동기, sync
DispatchQueue.main.sync {}
DispatchQueue.global().sync {}

//비동기, async
DispatchQueue.main.async {}
DispatchQueue.global().async {}

Sync

Async

https://user-images.githubusercontent.com/73867548/146363008-31234401-ad8f-4d8d-8944-3a723de5443a.gif

NOTE

Playground에서 직접 코드를 작성해서 4가지 경우를 이해해 보자

DispatchQueue.main.sync는 사실 제대로 동작하지 않는 코드임 DispatchQueue.main.async를 먼저 살피자

Command Line Tool & Playground

main.async

import Foundation

DispatchQueue.main.async {
    for _ in 1...5 {
        print("😀😀😀😀😀")
        sleep(1)
    }
}

DispatchQueue.main.async {
    for _ in 1...5 {
        print("🥶🥶🥶🥶🥶")
        sleep(2)
    }
}

/* - 출력
😀😀😀😀😀
😀😀😀😀😀
😀😀😀😀😀
😀😀😀😀😀
😀😀😀😀😀
🥶🥶🥶🥶🥶
🥶🥶🥶🥶🥶
🥶🥶🥶🥶🥶
🥶🥶🥶🥶🥶
🥶🥶🥶🥶🥶
*/