https://developer.apple.com/documentation/dispatch/dispatchsemaphore DispatchSemaphore 전형적인 카운팅 세마포어를 사용하여 여러 실행구문에서 공유하는 리소스에 대한 접근을 제어하는 객체. 세마포어는 한글로 신호기/신호등 정도로 해석이 가능하다. 선언 class DispatchSemaphore : DispatchObject 개요 디스패치 세마포어는 전형적인 카운팅 세마포어의 효율적인 구현이다. 디스패치 세마포어는 실행중인 쓰레드를 블록해야 할 때만 커널을 호출한다. 만약 세마포어가 블록할 필요가 없다면 커널 호출은 발생되지 않는다. signal() 메소드 호출로 세마포어 카운트를 올리고, wait() 메소드 호출 또는 시간제한 두기를 통해..
https://developer.apple.com/documentation/dispatch/dispatchgroup DispatchGroup 여러 작업(task)들을 하나의 단위로 묶는 그룹이다. 선언 class DispatchGroup : DispatchObject 개요 그룹은 여러 작업들을 모아 행동을 동기화할 수 있다. 여러 작업들을 그룹에 넣고 동일한 큐 또는 다른 큐에서 비동기 실행을 예약한다. 모든 작업의 실행이 종료되면, 그룹은 컴플리션 핸들러를 실행한다. 또한 그룹의 모든 작업이 실행이 완료될 때 까지 동기적으로 기다리게 할 수도 있다. 요약 여러 스레드로 분배된 작업들이 전부 끝난 시점을 파악하기 위해 사용한다. 활용 그룹 만들기 그룹을 생성하고 async(group:qos:flags:e..
