在java中基本类型的大部分赋值操作是原子性的,但是long和double除外,因为jvm将long和double会产生字撕裂的情况,jvm将long和double读取和写入当作分离的两次32位操作来执行,这样多线程可能产生不一致的情况出现.解决办法就是加上volatile.
转载于:https://my.oschina.net/u/138995/blog/295782
转载于:https://my.oschina.net/u/138995/blog/295782