volatile키워드
FrontPage|FindPage|TitleIndex|RecentChanges|UserPreferences E D R S I M H RSS

  • C, C++ 에서 volatile 키워드를 지정한 경우
    • 지정한 변수에 대해 최적화를 하지 않는다.
    • 최적화를 하면 변수를 register 위에 올려놓고 연산을 수행해서 그 와중에 메모리에 있던 변수의 값이 바뀌어도 반영이 안되는 경우가 생길 수 있다.
    • 이것은 주로 멀티 쓰레드를 사용하는 프로그램에서 공유하는 변수의 경우, 극한 상황에서 문제를 일으킬 수 있다.
    • 하드웨어나 커널에서 변수를 바꾸는 경우도 해당한다.
    • 그래서 컴파일할 때 최적화를 너무 많이하면 멀티 쓰레드 프로그램들이 이상하게 동작했나보다.
    • 멀티 쓰레드 프로그램을 짤 때 volatile 키워드를 쓰는 것을 고려하는게 좋은거 같다.

EditText|FindPage|DeletePage|LikePages| Valid XHTML 1.0! Valid CSS! powered by MoniWiki