为什么饿汉模式是线程安全的?
我知道饿汉模式只要类被加载,实例就会立刻创建
但是如果两个线程共同存储这个对象的某个成员到数据库,难道不会出现错误吗?
1.线程A:set数据1到对象(切换线程)
2.线程B:set数据2到对象(切换线程)
3.线程A:add对象中的数据到数据库(此时数据是2,A存入了B的数据)
3.线程B:add对象中的数据到数据库
第三步中的线程A存入的数据不是错的吗?
为什么饿汉模式是线程安全的?
我知道饿汉模式只要类被加载,实例就会立刻创建
但是如果两个线程共同存储这个对象的某个成员到数据库,难道不会出现错误吗?
1.线程A:set数据1到对象(切换线程)
2.线程B:set数据2到对象(切换线程)
3.线程A:add对象中的数据到数据库(此时数据是2,A存入了B的数据)
3.线程B:add对象中的数据到数据库
第三步中的线程A存入的数据不是错的吗?
线程安全一般是说你没有经过额外的手段去同步,数据能被各个线程正常操作
可见性本就是jmm的特性之一,对于你这种场景,没变才是线程不安全的