정체불명의 모모
[ C++] std::mutex를 통한 thread 동기화 본문
thread가 C++ 11에서 직접 지원하면서 동기화를 위한 std::mutext가 추가되었습니다.
mutex : 스레드로 동시에 여러 개를 처리할 때 모든 스레드가 접근하는 데이터를 하나의 스레드가 먼저 사용할 수 있도록
독점적으로 자원을 가져다 사용할 수 있도록 해주는 방법 입니다.
스레드를 10개를 생성하고 스레드로 실행시키는 함수인 increase_value() 함수에서 전역 변수 value를 하나씩 증가시키고 하나씩 출력합니다.
이 때 뮤텍스를 이용하여 동기화합니다.
위의 코드를 뮤텍스를 이용해서 동기화를 하면 정상적인 결과값이 나옵니다.
1, 2, 3, 4, 5, 6, 7, 8 ,9 , 10
※ mutex를 지운 후 컴파일 하면
개판 오분전의 결과 값이 나온다.
멀티 쓰레드 무섭다... ㅎㄷ ㄷ
참고 사이트
https://jjeongil.tistory.com/154
https://psychoria.tistory.com/231
'프로그래밍(c++)' 카테고리의 다른 글
[C++] 상속 관계에서 생성자, 소멸자 호출 순서 / virtual 소멸자 (0) | 2021.08.11 |
---|---|
[C++/STL] vector와 deque의 차이점 (0) | 2021.08.10 |
[C++] placement new - 전용 new (0) | 2021.08.05 |
[C++] std::allocator<T> 클래스 (0) | 2021.08.05 |
[스마트 포인터] Shared_ptr 알아보기(구현) (0) | 2021.07.15 |
Comments