저는 Linux에서 C++로 프로그래밍 중이며 pthreads 라이브러리를 사용하고 있습니다. 일부 공유 변수를 보호하기 위해 뮤텍스를 사용하고 있지만이 특정 경우 뮤텍스를 사용해야하는지 확실하지 않습니다.동시 읽기에서 뮤텍스를 사용하거나 사용하지 않음
3 개의 스레드가 있습니다. 공유 변수는 문자열 (전역 변수)입니다.
Thread1은 값을 변경하고 나중에 thread2와 thread3은 값을 읽고 다른 문자열에 저장합니다.
이 경우 문자열 값은 하나의 스레드에 의해서만 수정됩니다. 두 스레드가 동시 읽기에서 공유 변수를 보호하기 위해 여전히 뮤텍스를 사용해야합니까?
개체를 수정하는 스레드가 하나 이상있을 때마다 뮤텍스가 필요합니다. 당신이 그것을 필요로하지 않을 때 유일한 상황은 * everyone *이 독서 일 때입니다. – Quentin
하지만 Thread1이 이미 값을 수정할 때 Thread2와 3은 문자열 값을 읽습니다. –
다른 스레드가 스레드를 읽기 전에 스레드 1이 스레드 수정을 완료했는지 확인하면 모든 스레드가 읽는 상황에 있습니다. mutex가 필요하지 않습니다. – Quentin