질문 : volatile 키워드는 무엇에 유용합니까?
오늘 직장 volatile
키워드를 발견했습니다. 익숙하지 않아서이 설명을 찾았습니다.
해당 기사에서 문제의 키워드를 설명하는 세부 정보를 고려할 때 해당 키워드를 사용한 적이 있습니까? 아니면이 키워드를 올바른 방식으로 사용할 수있는 사례를 볼 수 있습니까?
답변
volatile
에는 메모리 가시성을위한 의미가 있습니다. volatile
필드의 값은 쓰기 작업이 완료된 후 모든 판독기 (특히 다른 스레드)에게 표시됩니다. volatile
없으면 독자는 업데이트되지 않은 일부 값을 볼 수 있습니다.
귀하의 질문에 답하기 위해 : 예, 일부 코드가 루프를 계속할지 여부를 제어 volatile
루프는 volatile
값을 true
계속됩니다. 조건은 "중지"메소드를 호출 false
으로 설정할 수 있습니다. 루프는 false
보고 stop 메서드가 실행을 완료 한 후 값을 테스트 할 때 종료됩니다.
필자가 강력히 추천하는 "Java Concurrency in Practice "라는 책 volatile
대한 좋은 설명을 제공합니다. 이 책은 질문에서 언급 된 IBM 기사를 작성한 동일한 사람이 작성했습니다 (사실 그는 해당 기사의 맨 아래에 자신의 책을 인용합니다). volatile
사용은 그의 기사에서 "패턴 1 상태 플래그"라고 부르는 것입니다.
volatile
이 어떻게 작동하는지 자세히 알아 보려면 Java 메모리 모델을 읽어보십시오. 그 수준을 넘어서고 싶다면 Hennessy & Patterson 과 같은 좋은 컴퓨터 아키텍처 책을 확인하고 캐시 일관성 및 캐시 일관성에 대해 읽어보십시오.
출처 : https://stackoverflow.com/questions/106591/what-is-the-volatile-keyword-useful-for
'프로그래밍 언어 > JAVA' 카테고리의 다른 글
Java에서 명령 줄 인수를 구문 분석하는 방법 (0) | 2021.10.06 |
---|---|
Java에서 public, protected, package-private, private의 차이점 (0) | 2021.10.05 |
JavaScript 배열을 쉼표로 구분 된 목록으로 바꾸는 쉬운 방법 (0) | 2021.10.01 |
자바 스크립트에서 자체 실행 기능의 목적 (0) | 2021.09.30 |
Java에서 두 배열(List)을 결합하는 방법 (0) | 2021.09.29 |