[iOS] 동시성 프로그래밍(3) - DispatchGroup
2023. 1. 4. 00:15
iOS/iOS
지난 포스팅에서 알아본 GCD는Dispatch Queue에 작업을 추가하면해당 Queue에 연결된 Thread로 작업을 분배해 준다. 하지만, 비동기인 작업의 경우에 해당 작업을 기다리지 않기에 끝나는 시점을 알지 못한다.이번 포스팅에서 알아볼 Dispatch Group은 작업이 끝나는 시점을 알 수 있다. DispatchGroup이름에서 알 수 있듯이, DispatchGroup은 일련의 비동기적으로 수행할 작업(Task)을 그룹화를 한다.여기서 주의할 점은 비동기적으로 수행할 작업만 그룹화 할 수 있으며, 동기적으로 수행할 작업은 그룹화할 수 없다. 그룹화된 작업들은 각각 서로 다른 DispatchQueue를 통해 수행될 수 있다.즉, 서로 다른 Thread에서 수행될 수 있다. 또한, Dispat..
[iOS] 동시성 프로그래밍(2) - GCD(Grand Central Dispatch)
2023. 1. 2. 23:34
iOS/iOS
지난 포스팅에서 "iOS는 GCD, NSOperation를 통해 멀티쓰레딩을 통한 동시성 프로그래밍을 지원한다" 언급하였는데, 이 중 GCD에 대해 이번 포스팅에서 알아보자. 우선 GCD는 애플에서 제공하는 "멀티 쓰레딩" 처리를 쉽고 편하게 해주는 API이다. 또한 "큐에 넣기만 하면 알아서 쓰레드로 분배해 준다"라고 하였는데, GCD에서의 해당 큐가 Dispatch Queue이다. Dispatch Queue DispatchQueue는 아래와 같이 사용이 가능한데, "큐의 종류", "qos 옵션", "동기/비동기" 에 대한 설정이 가능한데, 이들에 대해 순차적으로 알아보자! Queue의 종류 Dispatch Queue의 종류에는 3가지가 있다. main Queue global Queue custom Q..