是否能重排序 | 第二个操作 | ||
---|---|---|---|
第一个操作 | 普通读/写 | volatile读 | volatile写 |
普通读/写 | YES | NO | YES |
volatile读 | NO | NO | NO |
volatile写 | YES | NO | NO |
我理解的对volatile
变量的重排序(编译器重排序和处理器重排序),主要目的是为了实现对volatile的写,Happend-Before对volatile的读
所以,按照我理解的话,并不需要像图表中那么严谨
PHP中文网2017-04-18 09:43:49
멀티스레딩의 경우 스레드 작업 메모리와 메인 메모리 사이에 동기화 문제가 있습니다. Volatile은 메인 메모리에서만 즉시 사용 가능합니다