iOS Concurrency(동시성) 프로그래밍, 동기 비동기 처리 그리고 GCD/Operation - 디스패치큐와 오퍼레이션큐의 이해 강의 <섹션 0. GCD - 1.GCD/Operation에 앞서> 의
3) Synchronous(동기) VS Asynchronous(비동기)과4)Serial(직렬) VS Concurrency(동시)내용을 정리한 것입니다.
비동기(Asynchronous): 작업을 시작시키고 기다리지 않는다
DispatchQueue.global().async {
}
// 원래 작업이 진행되고 있는 main thread에서
// 글로벌 디스패치 큐로 보낸 작업을 기다리지 않는다.동기(Synchronous): 작업이 끝날 때 까지 기다린다.
DispatchQueue.global().sync {
}
// 원래 작업이 진행되고 있는 main thread에서
// 글로벌 디스패치 큐로 보낸 작업이 끝날 때까지
// 다른 작업이 진행되지 않도록 block하고 기다린다.
(동기로 다른 스레드로 보낸다 -> 이게 의미가 없어. -> 이런 경우 그냥 메인 스레드에서 실행된다고 함(os 자체의 판단인가))