«volatile» 태그된 질문

Volatile은 "자체적으로 변경 될 수있는"데이터 저장 영역 (객체, 필드, 변수, 매개 변수)을 정의하는 데 사용되는 한정자이므로 일부 코드 생성기 최적화를 허용하지 않습니다. 이 한정자를 인식하는 일부 언어에서는 이러한 데이터에 대한 액세스가 스레드로부터 안전합니다.

22
휘발성 키워드가 유용한 이유
오늘 직장에서 저는 volatile키워드를 Java로 보았습니다. 그것에 익숙하지 않아서이 설명을 찾았습니다. 자바 이론 및 실습 : 변동성 관리 해당 기사에서 해당 키워드에 대해 자세히 설명 했으므로 키워드를 사용하거나 올바른 방식으로이 키워드를 사용할 수있는 사례를 볼 수 있습니까?

9
휘발성 vs. 연동 vs. 잠금
클래스 public int counter에 여러 스레드가 액세스 하는 필드 가 있다고 가정 해 봅시다 . 이것은 int증가 또는 감소 만됩니다. 이 필드를 늘리려면 어떤 접근 방식을 사용해야하며 그 이유는 무엇입니까? lock(this.locker) this.counter++;, Interlocked.Increment(ref this.counter);, 의 액세스 한정자 변경 counter에를 public volatile. 내가 발견 한 지금 volatile, 나는 많은 lock진술과의 사용을 …


7
원자 / 휘발성 / 동기화의 차이점은 무엇입니까?
원자 / 휘발성 / 동기화는 내부적으로 어떻게 작동합니까? 다음 코드 블록의 차이점은 무엇입니까? 코드 1 private int counter; public int getNextUniqueIndex() { return counter++; } 코드 2 private AtomicInteger counter; public int getNextUniqueIndex() { return counter.getAndIncrement(); } 코드 3 private volatile int counter; public int getNextUniqueIndex() { return counter++; } …

8
자바의 휘발성과 정적
static모든 객체에 대해 volatile하나의 값 사본을 의미하고 모든 스레드에 대해 하나 의 값 사본 을 의미 한다고 말하는 것이 맞 습니까? 어쨌든 static변수 값도 모든 스레드에 대해 하나의 값이 될 것입니다. 그렇다면 왜 우리는 가야 volatile합니까?


4
Java에서 휘발성과 동기화의 차이점
Java volatile에서 synchronized(this)블록으로 변수를 선언 하고 항상 변수에 액세스하는 것과의 차이점이 궁금합니다 . 이 기사 http://www.javamex.com/tutorials/synchronization_volatile.shtml 에 따르면 말할 것이 많고 많은 차이점이 있지만 약간의 유사점이 있습니다. 이 정보에 특히 관심이 있습니다. ... 휘발성 변수에 대한 액세스는 절대로 차단할 가능성이 없습니다. 우리는 간단한 읽기 또는 쓰기 만 수행하므로 동기화 된 …


9
휘발성이 멀티 스레드 C 또는 C ++ 프로그래밍에서 유용하지 않은 이유는 무엇입니까?
최근에 게시 한이 답변 에서 입증 된 것처럼 volatile멀티 스레드 프로그래밍 컨텍스트 의 유틸리티 (또는 부족)에 대해 혼란스러워하는 것 같습니다 . 내 이해는 이것입니다 : 변수가 액세스하는 코드 조각의 제어 흐름 외부에서 변수가 변경 될 때마다 변수는로 선언되어야합니다 volatile. 다른 스레드에 의해 수정 된 신호 처리기, I / O 레지스터 …

8
"휘발성"키워드는 무엇입니까?
На этот вопрос есть ответы на 스택 오버플로 на русском : Ключевое слово 휘발성 в 자바 volatile키워드 에 대한 기사를 읽었 지만 올바른 사용법을 알 수 없습니다. C #과 Java에서 무엇을 사용해야하는지 말씀해 주시겠습니까?
130 c#  java  volatile 

5
멀티 스레딩에서 휘발성을 사용해야하는 경우
전역 변수에 액세스하는 두 개의 스레드가있는 경우 많은 자습서에서 컴파일러가 변수를 레지스터에서 캐싱하지 못하도록 변수를 휘발성으로 만들고 올바르게 업데이트되지 않는다고 말합니다. 그러나 공유 변수에 액세스하는 두 개의 스레드는 뮤텍스를 통한 보호를 요구하는 것이 아닙니다. 그러나이 경우 스레드 잠금과 뮤텍스 해제 사이에서 코드는 하나의 스레드 만 변수에 액세스 할 수있는 중요한 …

4
휘발성은 비쌉니까?
컴파일러 작성자를위한 JSR-133 쿡북을 읽은 후 휘발성의 구현, 특히 부분에 대해 "원자 지침과 상호 작용"나는 그것을 업데이트하지 않고 휘발성 변수를 읽는 것은 LoadLoad 또는 LoadStore 장벽을 필요로한다고 가정합니다. 페이지 아래로 내려 가면 LoadLoad 및 LoadStore가 X86 CPU에서 효과적으로 작동하지 않는 것을 알 수 있습니다. 이것은 x86에서 명시적인 캐시 무효화없이 휘발성 …

6
C #에서 volatile 키워드의 사용법 설명
volatile키워드 의 동작을 시각적으로 보여주는 작은 프로그램을 코딩하고 싶습니다 . 이상적으로는 비 휘발성 정적 필드에 대한 동시 액세스를 수행하고 그로 인해 잘못된 동작을하는 프로그램이어야합니다. 같은 프로그램에 volatile 키워드를 추가하면 문제가 해결됩니다. 내가 달성하지 못한 것. 여러 번 시도하여 최적화 등을 활성화해도 'volatile'키워드없이 항상 올바른 동작을 얻습니다. 이 주제에 대해 알고 …
88 c#  .net  volatile 

13
C ++ volatile 키워드가 메모리 울타리를 도입합니까?
volatile컴파일러에게 값이 변경 될 수 있음 을 알리는 것을 이해 하지만이 기능을 수행하려면 컴파일러가 작동하도록 메모리 펜스를 도입해야합니까? 내 이해에서 휘발성 개체에 대한 작업 순서는 재정렬 할 수 없으며 보존해야합니다. 이것은 일부 메모리 펜스가 필요하며 실제로이 문제를 해결할 방법이 없음을 의미하는 것 같습니다. 이 말이 맞습니까? 이 관련 질문에 흥미로운 …

8
.NET에서 이중 체크 잠금에서 휘발성 수정 자 필요
여러 텍스트는 .NET에서 이중 검사 잠금을 구현할 때 잠그고있는 필드에 휘발성 수정자를 적용해야한다고 말합니다. 하지만 정확히 왜? 다음 예를 고려하십시오. public sealed class Singleton { private static volatile Singleton instance; private static object syncRoot = new Object(); private Singleton() {} public static Singleton Instance { get { if (instance == …
85 c#  singleton  volatile 

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.