SimpleDateFormat 非线程安全, 在阿里 Java 开发手册上推荐以下写法 ,可是这种写法参数是写固定的,而实际需要传入指定参数. 比如说只要显示年月日
private ThreadLocal
问题: 如何在调用或者初始化时候传入自定义参数.
1
Kaiv2 2019-12-24 17:52:31 +08:00 via Android
放到调用处啊
|
2
twirain 2019-12-24 17:57:10 +08:00
新建个类
|
3
chendy 2019-12-24 18:26:23 +08:00
format 是动态的,就不需要做这个 ThreadLocal 的优化了
或者做多个 ThreadLocal 保存各种要用到的 format |
4
SoloCompany 2019-12-24 21:29:01 +08:00
SimpleDateFormat 不是线程安全的这没错
问题是你为什么要重用他,不重用就不存在线程安全问题 |
5
jenschen 2019-12-24 21:44:33 +08:00 via iPhone
ThreadLocal 是对每个线程复制一个值,来解决并发问题。直接用就可以了
|
6
lxk11153 2019-12-24 22:09:12 +08:00
org.apache.commons.lang3.time.FastDateFormat
|
7
Raymon111111 2019-12-24 22:11:33 +08:00
如果是专门想解决 SimpleDateFormat 的问题
那答案是不用这个类, 有很多更好用的替代类 |
8
lxk11153 2019-12-24 22:12:16 +08:00
https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/time/package-summary.html
DateFormatUtils DateUtils FastDateFormat 等 |
9
CStarter 2019-12-25 00:37:38 +08:00 via Android
这个类用的时候直接 new,不要复用。
非要复用的话,自定义类继承 Threadlocal,定义自己的方法 |
10
hzgit 2019-12-25 11:43:08 +08:00
ThreadLocal 初始化:静态方法 withInitial
SimpleDateFormat 非线程安全:LocalDateTime/LocalDate/LocalTime |