You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
barrier는 GCD의 Concurrent Queue인 Global Queue의 flags에 설정할 수 있는 값으로,
Concurrent Queue가 사용하는 여러 thread에서 실행을 위한 하나의 스레드를 제외하고 다른 모든 스레드의 사용을 막아 thread-safe를 구현하기 위해 사용됩니다.
Concurrent Queue에 barrier를 추가하면, queue는 이전에 제출한 모든 작업의 실행을 마칠 때 까지 barrier block의 실행을 지연시킨 후 그 작업들이 끝나면 barrier block을 자체적으로 실행하는 것으로 동작합니다.
barrier를 통해 경쟁 상황(Race Condition)을 예방할 수 있고 공유자원에 대한 동시접근을 통해 일어날 수 있는 문제를 회피할 수 있습니다.
barrier는 Concurrent 큐에서 경쟁 상태를 해결하고 thread-safe한 코드를 위해 사용할 수 있는 도구이다.
barrier는 작업 큐에서 앞선 작업들이 완료될 때까지 기다렸다가 barrier block 내에서는 직렬적으로 작업을 수행합니다. barrier block의 작업이 끝나면 작업 큐의 나머지 작업을 진행합니다.
concurrent 큐에서 barrier를 사용하는 방법이 있다면 Serial 큐에서는 sync(동기) 방식을 채택하는 것으로 경쟁 상태를 방지할 수 있습니다.
The text was updated successfully, but these errors were encountered: