iOS 개발/Swift
[Swift 3] DispatchSemaphore 사용하기
beankhan
2017. 6. 11. 22:13
출처
http://seorenn.blogspot.kr/2015/12/swift-gcd-dispatch-semaphore.html
DispatchSemaphore 를 사용하는 이유
serial dispatch queue 또는 dispatch_barrier_async 함수보다
작은 단위를 가진 소스코드의 작은 부분에 대한 동시성 제어가 필요한 경우 사용한다.
DispatchSemaphore 사용하기
DispatchSemaphore 의 init 시 사용되는 value 는 자원 개수를 뜻한다.
semaphore.wait() 는 value 값을 줄이고,
semaphore.signal() 은 value 값을 증가시킨다.
value 값이 음수가 되면 해당 스레드는 동작을 멈추고 자원을 얻기위해 기다린다.
.distantFuture 는 forever 와 동일한 시간이라고 보면된다.