DispatchSemaphore semaphore를 사용하여 여러 실행 컨텍스트에서 리소스에 대한 액세스를 제어하는 개체 semaphore를 사용하여 동시에 진행되는 작업의 개수를 제한하거나 두 스레드의 이벤트 완료 상태 동기화 임계구역에 들어갈때 wait()(value값 -1), 나올때는 signal()(value값 +1)호출 세마포어의 값이 0이되면 공유자원이 1개 이상이 될때까지 대기 DispatchSemaphore 생성 // 공유 자원의 개수가 3개인 세마포어 생성 let dispatchSemaphore = DispatchSemaphore(value: 3) wait(), signal()을 통한 공유자원 접근 확인 for i in 1...5 { dispatchSemaphore.wait() // 세마..