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

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

L C++/Concurrency

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

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

 

각각의 동기화 기본 요소(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