프로그래밍(c++)
[ C++] std::mutex를 통한 thread 동기화
정체불명의 모모
2021. 8. 5. 18:51
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
[ C++ ] mutex 개념 및 예제
뮤텍스는 스레드로 동시에 여러 개를 처리할 떄 모든 스레드가 접근하는 데이터를 하나의 스레드가 먼저 사용할 수 있도록 독점적으로 자원을 가져다 사용할 수 있도록 해주는 방법입니다. 자
jjeongil.tistory.com
https://psychoria.tistory.com/231
냉정과 열정사이
프로그램 개발과 테크 집약 블로그
psychoria.tistory.com