往期精选
● 架构师高并发高性能分布式教程(4000G)
● 39阶段精品云计算大数据实战视频教程
● 互联网技术干货视频教程大全【菜单为准】
● 2017年8月最新Intellij IDEA全套视频教程
● 程序员如何制作高质量的简历【视频+简历】
● 两套大型电商实战项目
● 200本经典编程相关书籍下载
`
-
parse 方法为什么不线程安全
1.有一个共享变量calendar,而这个共享变量的访问没有做到线程安全
2.parse方法生成CalendarBuilder,然后通过CalendarBuilder 设值到calendar,最后calendar.getTime();
3.api方法说明 This parsing operation uses the calendar to produce a Date. All of the calendar's date-time fields are cleared before parsing, and the calendar's default values of the date-time fields are used for any missing date-time information.
-
format方法为什么不线程安全
1.有一个共享变量calendar,而这个共享变量的访问没有做到线程安全
2.当使用format方法时,实际是给calent共享变量设置date值,然后调用subFormat将date转化成字符串
--------------------
-------------------
-
解决方案
1.创建一个共享的SimpleDateFormat实例变量,但是在使用的时候,需要对这个变量进行同步
2.使用ThreadLocal为每个线程都创建一个线程独享SimpleDateFormat变量
3.需要的时候创建局部变量
作者:LION
`