long和double的线程安全问题

java规范规定了对基本数据类型的操作必须是原子性的,但是long和double除外。 但是对于volatile 修饰的long和double,读写必须为原子的。 但是规范没有规定怎么去实现,现今的虚拟机都是把32位作为原子性操作。但是对于64位确没有,因此64位虚拟机操作long和double时,会出现两次写操作,这就造成了错位可能,因此在64位上操作共享的long和double时,必须实现同步
相关文章
相关标签/搜索