동시성을 위해 iOS 에서 지원하는 기술인 GCD
와 Operation
의 간단한 개념과 특징을 알아보고
동기
, 비동기
, Serial
, Concurrent
에 대해 알아보기로 하자!
멀티스레딩
을 쉽게 처리하기 위해 애플에서 제공하는 APImain Thread
가 다 하던 일들을 Queue
에 보내주면 적절히 생성하여 분배해주는 기능동작원리
우리가 DispatchQueue에 작업을 추가하면 → 작업에 맞는 스레드를 자동으로 생성해서 분배 → 작업이 종료되면 스레드 제거
DispatchQueue.global().asunc {
//task 의 한단위
}
<aside>
📌 DispatchQueue
: iOS 에서 동시성 프로그래밍을 돕기위해 제공하는 queue
global
: Dispatch Queue 의 종류
async
: 비동기
</aside>
클로저내의 task
는 하나의 작업단위이기 때문에 그 안의 동작들은 순차적으로 처리
GCD 위에서 동작하지만 아래의 두 기능을 추가로 가지고 있음