개발 휘발성이란 무엇입니까? -techopedia에서 정의

휘발성이란 무엇입니까? -techopedia에서 정의

차례:

Anonim

정의-휘발성이란 무엇입니까?

휘발성은 클래스와 관련된 멤버 변수가 여러 스레드에 의해 비동기 적으로 변경 될 수 있도록 지정하는 Java 프로그래밍 언어 내의 키워드입니다. 코드에서 volatile 키워드는 멤버가 선언 될 때 수정 자 역할을합니다. 키워드는 기본적으로 컴파일러와 관련하여 고유 한 의미를 가진 예약어입니다.

volatile 키워드는 변수가 간단한 카운터 및 시계와 같이 환경이나 시스템에 종속 된 변수를 나타낼 때마다 사용됩니다.

Techopedia는 휘발성을 설명합니다

volatile 키워드는 멤버 변수에 대한 각 읽기 액세스가 가장 최근 값을 리턴하도록합니다. 다른 스레드를 사용하여 최근 변경을 수행 한 경우에는 효과적이지 않습니다. 멤버 변수가 휘발성으로 선언되지 않으면 스레드는 다른 스레드를 사용하여 수행 한 수정 사항을 인식 할 수 없습니다.

이중 멤버 또는 긴 멤버의 경우 volatile 키워드는 가상 머신이 두 개의 연속적인 32 비트 쓰기를 생성하지 않고 대신 하나의 64 비트 쓰기 만 생성하도록합니다. 이것이 가능하지 않은 경우, JVM 구현은 이전 하반부를 일부 휘발성 이중 또는 긴 일부의 새로운 상위 절반으로 읽지 않도록이 함수의 원 자성을 계속 보장합니다.

휘발성 쓰기 및 읽기는 이전에 발생한 관계를 설정합니다. 휘발성 객체에 액세스하기 전에 동기화 된 블록을 시작하기 전 또는 후에 메인 메모리와 캐시 된 변수간에 동기화가 발생합니다. 이는 휘발성 개체가 동기화없이 안전하게 게시 될 수 있음을 의미합니다. 즉, 스레드가 휘발성 개체에 액세스하면 해당 개체의 멤버도 업데이트됩니다.

변수가 휘발성으로 설명되면 JVM 및 Java 컴파일러는 다음 두 가지를 수행합니다.

  1. 컴파일러가 해당 변수와 관련된 명령문 및 표현식을 최대화하지 못합니다.
  2. JVM은 변수를 동기화합니다.

휘발성의 장점은 다음과 같습니다.

  • 가볍다
  • 읽기 및 쓰기에 매우 작은 오버 헤드가 발생하지만 여전히 잠금보다 빠릅니다.
  • 휘발성은 데드락에 강합니다.
휘발성이란 무엇입니까? -techopedia에서 정의