SimpleDateFormat不是线程安全的

简介:

     今天突然想起来上次面试的时候被问到SimpleDateFormat是不是线程安全的,那时我的想法是,这东西设计成线程安全应该很容易,为什么不设计成线程安全的呢,接着又想,就算不是线程安全的,一个线程new一个SimpleDateFormat不就行了。

     今天看了下源码

 
  1. public Date parse(String text, ParsePosition pos) 
  2.     { 
  3.      
  4.         checkNegativeNumberExpression(); 
  5.      
  6.         int start = pos.index; 
  7.         int oldStart = start; 
  8.         int textLength = text.length(); 
  9.  
  10.         calendar.clear(); // Clears all the time fields
  11. ..... 

calendar.clear(),注意这句,calendar是类的一个protected成员变量,然后就果断不是线程安全的了...




本文转自 dogegg250 51CTO博客,原文链接:http://blog.51cto.com/jianshusoft/698852,如需转载请自行联系原作者

相关文章
|
2月前
|
存储 安全 Java
我们来聊聊线程安全吧
我们来聊聊线程安全吧
|
7月前
|
安全 Java 编译器
深入理解线程安全
在多线程编程中,线程安全是一个至关重要的概念。线程安全可能到导致数据不一致,应用程序崩溃和其他不可预测的后果。本文将深入探讨线程安全问题的根本原因,并通过Java代码示例演示如何解决这些问题。
86 0
|
9月前
|
安全 Java 调度
什么是线程安全的?
首先要明白线程的工作原理,jvm有一个main memory,而每个线程有自己的工作内存,一个线程对一个variable进行操作时,都要在自己的工作内存里面建立一个copy,操作完之后再写入主内存。多个线程同时操作同一个variable,就可能会出现不可预知的结果。
57 0
|
存储 安全
解决SimpleDateFormat线程安全问题
SimpleDateFormat是线程不安全的类,一般不要定义为static变量,如果定义为static,必须通过加锁等方式保证线程安全。
298 0
|
Java 数据库
SimpleDateFormat 使用
SimpleDateFormat 使用
71 0
|
存储 安全 Java
解密SimpleDateFormat类的线程安全问题和六种解决方案!
提起SimpleDateFormat类,想必做过Java开发的童鞋都不会感到陌生。没错,它就是Java中提供的日期时间的转化类。这里,为什么说SimpleDateFormat类有线程安全问题呢?有些小伙伴可能会提出疑问:我们生产环境上一直在使用SimpleDateFormat类来解析和格式化日期和时间类型的数据,一直都没有问题啊!接下来,我们就一起看下在高并发下SimpleDateFormat类为何会出现安全问题,以及如何解决SimpleDateFormat类的安全问题。
1395 1
解密SimpleDateFormat类的线程安全问题和六种解决方案!
|
Java
Java重点 | DateFormat和SimpleDateFormat类
本文主要详细的介绍DateFormat和SimpleDateFormat类的使用方法,并且通过代码实战,让你对这两个类,有更深刻的印象。
77 0
Java重点 | DateFormat和SimpleDateFormat类
|
存储 开发框架 算法
线程安全
线程安全
69 0
SimpleDateFormat 线程安全问题
SimpleDateFormat 线程安全问题
107 0
SimpleDateFormat 线程安全问题