在java的语言规格中,一开始就定义了一些原子的操作,如,char ,int 这些的赋值与引用是原子的,
例如,两个线程同时对int类型的字段n进行赋值,一个使n=123 ,一个线程使n=345.
那么最后n的值不是123就是345,而不用担心模式会混合在一起。
但long与double的指定,引用操作并不是不可分割的
如对于long类型的a 赋值 ,两个线程分别使其a = 1234L ,a = 5678L
结果可能为,1234L,也可能为5678L,也可能为12345678L,也可能0L,等其他的方式。
解决方法,
1、加synchronized内操作。
2、在前面加上volatile关键字,则这些字段的操作就会成为不可分割的了