본문 바로가기
C#

[C#] volatile이 무슨 키워드임?

by 소리쿤 2022. 4. 30.

https://docs.microsoft.com/ko-kr/dotnet/csharp/language-reference/language-specification/classes#1454-volatile-fields

 

Classes - C# language specification

 

docs.microsoft.com

 

https://docs.microsoft.com/ko-kr/dotnet/csharp/language-reference/keywords/volatile#c-language-specification

 

volatile - C# 참조

volatile(C# 참조) 아티클 04/06/2022 읽는 데 5분 걸림 기여자 18명 이 문서의 내용 --> volatile 키워드는 동시에 실행되는 여러 스레드에 의해 필드가 수정될 수 있음을 나타냅니다. 컴파일러, 런타임 시

docs.microsoft.com

 

요약하면 volatile이 붙은 필드 변수는 외부 환경 (멀티 스레드 환경 등)에서 수정될 수 있음을 의미한다.

 

그렇기에 컴파일러가 임의로 최적화하는 것을 막으며,

변수 사용 시 메모리 수정을 대비하여 레지스터에 캐싱한 값 대신 매번 메모리에서 가져온다.

 

문득 궁금해져서 보긴 했는데, 아직 사용할 일은 크게 없을 듯 하다.

 

 

https://sonny777.tistory.com/7

 

Volatile 변수란..?

이름부터 신기한 볼라틸 변수에 대해 알아보자. 결론부터 말하자면 볼라틸로 선언한 변수는 사용할 때 마다 메모리에 접근해 해당 변수의 값을 확인한다. 그럼 이제 이걸 왜 쓰는지 이유를 알아

sonny777.tistory.com

제일 이해가 빨리 가는 포스팅

'C#' 카테고리의 다른 글

[C#] 레퍼런스 타입에 ref를 사용하는 경우가 있나?  (0) 2022.06.02
[C#] Indexer  (0) 2022.06.01
[C#] 어셈블리 내 클래스 타입 가져오기  (0) 2022.02.24
[C#] enum과 foreach 주의할 점  (0) 2022.02.24
[C#] Add와 AddRange  (0) 2022.02.16