volatile类型的变量多线程访问的时候,对于每一个线程还会在私有内存中保存volatile类型变量的拷贝吗?
volatile 型変数へのマルチスレッド アクセスの問題 - PHP 中国語 Web サイト Q&A - volatile 型変数へのマルチスレッド アクセスの問題 - PHP 中国語 Web サイト Q&A
周りを見て学んでください。
对于java的内存模型来说,每个volatile会在线程的工作内存从保留一个拷贝,只不过java内存模型通过对volatile变量的添加了特殊机制保证了变量的可见性。线程在修改volatile类型变量以后必须立即保存到主内存,在使用变量前必须从主内存加载数据,同时还做了一些禁止指令重排序的操作。对于各个线程的工作内存(私有内存)来说,存在volatile变量不一致的时刻,但是对于执行引擎来说,通过了上面的几条规则保证了变量是一致的。
volatile 型変数へのマルチスレッド アクセスの問題 - PHP 中国語 Web サイト Q&A - volatile 型変数へのマルチスレッド アクセスの問題 - PHP 中国語 Web サイト Q&A
周りを見て学んでください。
对于java的内存模型来说,每个volatile会在线程的工作内存从保留一个拷贝,只不过java内存模型通过对volatile变量的添加了特殊机制保证了变量的可见性。线程在修改volatile类型变量以后必须立即保存到主内存,在使用变量前必须从主内存加载数据,同时还做了一些禁止指令重排序的操作。对于各个线程的工作内存(私有内存)来说,存在volatile变量不一致的时刻,但是对于执行引擎来说,通过了上面的几条规则保证了变量是一致的。