SW 그리고 아빠 엔지니어링 중...

아는 만큼 보이고, 경험해봐야 알 수 있고, 자꾸 써야 내 것이 된다.

L C++/Concurrency

[Concurrency] 동기화 기본 요소(synchronization primitive) 정리

보리남편 김 주부 2024. 1. 19. 22:42
각각의 동기화 기본 요소 리포팅이 완료되어 전체를 일괄 정리해 보자.

 

각각의 동기화 기본 요소(synchronization primitive)를 정리해 보면 다음과 같다. (각 요소의 세부 내용은 제목에 링크를 걸어 놨다.)


Condition variables (C++11)

조건 변수는 여러 스레드가 서로 통신할 수 있도록 하는 동기화 기본 요소입니다. 이를 통해 일정 수의 스레드가 다른 스레드로부터 진행될 수 있다는 알림을 기다릴 수 있습니다(시간 초과 가능). 조건 변수는 항상 뮤텍스(Mutex)와 연결됩니다.


Semaphores (c++20)

세마포어는 공유 리소스에 대한 동시 액세스를 제한하는 데 사용되는 경량 동기화 기본 요소입니다. 둘 중 하나라도 충분할 경우 세마포어는 조건 변수보다 더 효율적일 수 있습니다.

counting_semaphore (C++20) 음수가 아닌 자원 수를 모델링하는 세마포어
binary_semaphore (C++20) 두 가지 상태만 갖는 세마포어

 

Latches and Barriers(C++20)

래치(걸쇠) 및 장벽은 예상되는 수의 스레드가 도착할 때까지 원하는 수의 스레드가 차단되도록 허용하는 스레드 조정 메커니즘입니다. 래치는 재사용할 수 없지만 장벽은 반복적으로 사용할 수 있습니다.

 

 

728x90
728x90