局部变量线程安全分析
2. 局部变量线程安全分析
实现线程安全有三种方式:
1.无共享变量(也就不存在修改安全了)
2.共享变量不可变
3.同步
1 | public static void test(){ |
局部变量每个线程都会创建不同的实例,
没有共享行为, 就不会有线程安全不安全的问题
用final修饰的方法,子类能用但是不能重写
private修饰的方法, 子类无法继承更无法重写
====================
jdk的

他们的每个方法都是线程安全的, 但是方法的组合未必线程安全
注意这里组合没有线程安全,
因为get完成后立即释放锁, 别的线程可能就抢先put了,
然后你再put,就覆盖率了别人的数据,
想要组合线程安全,可以lua脚本/再给get+put组合操作加一把锁
===================
HashMap并非线程安全,其方法没有synchronized修饰
Date也是