问一个关于java volatile 重排序的问题
JMM 关于volatile的重排序要求当第二个操作是valatile写时,不管第一个操作(包含普通变量的读写)是什么,都不能进行重排序。
但是在实现的时候,只要valatile写操作的前面操作了StoreStore barrier ,这样来看,就没有实现限制 普通变量的读与valatile写操作的重排序。 这和上面的论述就产生不一致了。
想问下这是哪儿出问题了吗?
问一个关于java volatile 重排序的问题
JMM 关于volatile的重排序要求当第二个操作是valatile写时,不管第一个操作(包含普通变量的读写)是什么,都不能进行重排序。
但是在实现的时候,只要valatile写操作的前面操作了StoreStore barrier ,这样来看,就没有实现限制 普通变量的读与valatile写操作的重排序。 这和上面的论述就产生不一致了。
想问下这是哪儿出问题了吗?