나는 여러 개의 pthread가있는 프로그램이 있습니다. 이 스레드는 공용 파일에서 get 및 set 함수를 통해 정적 변수로 데이터를 다시보고합니다. 하나 개의 스레드가 getLAT();
를 실행하고 다른 동시에 setLAT();
를 실행하는 경우 동시에 변수 읽기 및 쓰기
static int LAT;
void getLat(){
return LAT;
}
void setLAT(int lat){
LAT = lat;
}
은 어떻게됩니까? 내 프로그램이 추락할까요? 그렇다면 어떻게 이것을 막을 수 있습니까?
크래시가 발생하지 않지만 어떤 값을 얻는지는 불가능합니다. 문자 그대로 그것은 경쟁 조건입니다. –
설정중인 것 또는 이미있는 것 이외의 것이 있습니까? – Reid
'LAT'에 대한 타입 선언이 누락되지 않았습니까? – gcbenison