[C++] 멀티스레드 경쟁과 생상자-소비자 문제: 스핀락, 슬립락 구현 / 이벤트, condition_variable
개요멀티 스레드 환경에서는 공유 변수(데이터) 에 대한 경쟁에 대한 처리 매커니즘이 필요하다그를 위해, lock 을 이용한다 lock 을 이용하는데 사용되는 3가지 개념을 알아두자Lock 구현 이론(임계구역을 화장실이라 생각하자)존버 메타 (화장실 앞에서 대기)스핀락이 그 예시이다.busy waiting 이지만, user level 에서만 동작하므로, 다른 스레드가 lock 점유 시간이 짧을 것이라는 확신이 있다면, 좋은 선택이 될 것이다 랜덤 메타 (일단 자리로 돌아갔다올게)잠시 슬립하여 CPU 타임 슬라이스를 포기하는 것이다.이 메타는, 불확실성을 갖고있다. 슬립 사이에 다른 스레드가 들어갈 확률 존재한다갑질 메타 (화장실이 비면 종업원에게 부탁하는거)이벤트 사용으로 구현한다. (C++ 11 에서는 ..
C・C++/멀티스레드
2024. 10. 4. 15:49
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Spring MVC
- 개발 공부 자료
- CPU
- servlet
- generic sort
- JPA
- 논문추천
- S4
- 이진탐색
- C
- OOP
- 연관관계 편의 메서드
- tree
- pocu
- 백준
- tomcat11
- generic swap
- PS
- Memory
- thread
- S1
- sleep lock
- 엔티티 설계 주의점
- Java
- core c++
- reader-writer lock
- 객체 변조 방어
- Dispatcher Servlet
- 톰캣11
- condition variable
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함