2012-03-11 1 views
1

변수를 선언하는 사람들의 인터넷에 대한 몇 가지 예가 volatile__thread입니다. 나는 그것이 실수라고 생각한다. 왜냐하면 __thread은 각 스레드에 대한 복사본이 있다는 것을 의미하기 때문에 volatile을 사용하면 할 수있는 "최선"은 그러한 변수의 캐싱을 불가능하게하는 것이다. 내가 놓친 게 있니?휘발성 __thread, 무의미한가요?

답변

4

두 용어는 상호 배타적 인 것이 아닙니다. volatile은 멀티 스레딩 문제뿐만 아니라 콜백 함수 또는 신호 처리기와 같이 현재 코드 블록을 인식하지 않고 변수가 변경 될 수있는 상황에 사용됩니다.

+1

또한 thread-local 변수에 대한 포인터를 다른 스레드에 전달하는 것을 막을 수있는 방법이 없다고 생각합니다. * volatile *이 적절할 수 있습니다. – ams