찾다

 >  Q&A  >  본문

java - JMM为什么要规定普通写和volatile读不能重排序?

是否能重排序 第二个操作
第一个操作 普通读/写 volatile读 volatile写
普通读/写 YES NO YES
volatile读 NO NO NO
volatile写 YES NO NO

我理解的对volatile变量的重排序(编译器重排序和处理器重排序),主要目的是为了实现对volatile的写,Happend-Before对volatile的读

所以,按照我理解的话,并不需要像图表中那么严谨

天蓬老师天蓬老师2769일 전932

모든 응답(1)나는 대답할 것이다

  • PHP中文网

    PHP中文网2017-04-18 09:43:49

    멀티스레딩의 경우 스레드 작업 메모리와 메인 메모리 사이에 동기화 문제가 있습니다. Volatile은 메인 메모리에서만 즉시 사용 가능합니다

    회신하다
    0
  • 취소회신하다