遇到多个线程访问同一个变量时使用,类中静态SimpleDateFormat格式化日期,在一个类中线程中使用格式化的类
的格式化方法,用线程绑定,来保证同一时间SimpleDateFormat只被一个线程使用,不造成因为多线程同时使用Sdf出现转换异常的现象。
ThreadLocal不是用来解决共享资源的多线程访问的问题, hreadLocal的set()方法设置到线程的ThreadLocal.ThreadLocalMap里的是线程自己要存储的对象,其他线程访问不到。
结果就是多个线程访问同一个变量,而这个变量会和线程绑定,其他线程的修改不会对该线程造成影响。
ThreadLocal<User> users=new ThreadLocal<>();
这样在不同线程中使用user就不会因线程造成错误。
参考:
https://blog.csdn.net/wangzuojia001/article/details/54406063
https://www.cnblogs.com/dolphin0520/p/3920407.html