如何避免线程安全性问题

A.线程安全性问题成因
1.多线程环境
2.多个线程操作同一共享资源
3.对该共享资源进行了非原子性操作

B.如何避免
打破成因中三点任意一点
1:多线程环境–将多线程改单线程(必要的代码,加锁访问)
2:多个线程操作同一共享资源–不共享资源(ThreadLocal,不共享,操作无状态化,不可变)
3:对该共享资源进行了非原子性操作-- 将非原子性操作改成原子性操作

如何避免线程安全性问题