2014-07-22 2 views
1

모든 스레드가 스레드를 만들기 전에 main()에 의해 값이 할당 된 전역 변수를 읽으면 어떻게 될까요? 동기화를 위해 뮤텍스가 필요합니까? 변수로 기록 및 판독 대한Pthread 동기화 문제

: 변수를 판독

답변

1

다중 스레드가 아닌 원자를 통해 (메모리 위치를 액세스 할 때 데이터 레이스 일어나는 값)이며 액세스 중 하나 이상이 쓰기이고 작업은 정렬되지 않습니다.

스레드 생성은 동기화 지점이므로 스레드 작성 후 모든 액세스는 초기 쓰기 액세스 이후에 정렬되고 이후 액세스는 읽기만됩니다. 따라서 인종은 없습니다.

0

스레드 중 하나가 전역 변수의 값을 변경하려는 경우 예를 들어, 새 뮤텍스가 필요합니다. 그렇지 않으면 동기화가 필요하지 않습니다.