`
heipark
  • 浏览: 2095120 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

(转&修订)多线程下安全使用SimpleDateFormat

    博客分类:
  • Java
阅读更多

在多线程先使用静态SimpleDateFormat是不安全的,如果每次都new又太消耗资源,下面的办法不错,值得学习。

 

 

	private static final String DATE_FORMAT ="yyyyMMddHHmmss";  
	
    protected static ThreadLocal<SimpleDateFormat> threadLocal =new ThreadLocal<SimpleDateFormat>() {  
    	protected synchronized SimpleDateFormat initialValue() {  
    		return new SimpleDateFormat(DATE_FORMAT);  
    	}  
	};  
    	  
	public static DateFormat getDateFormat() {  
		return threadLocal.get();  
	}  
    	  
	public static Date parse(String textDate) throws ParseException  {  
		return getDateFormat().parse(textDate);  
	}
 

参考:http://www.cnblogs.com/jessiejacky/archive/2011/04/22/2024427.html

 

--end

 

 

分享到:
评论

相关推荐

    simpleDateFormat是线程不安全的

    标题指出的"simpleDateFormat是线程不安全的",意味着在多线程环境下,如果多个线程共享同一个`SimpleDateFormat`实例,可能会引发数据不一致或异常。 `SimpleDateFormat`类的线程不安全主要源于以下几个原因: 1....

    Java多线程环境下SimpleDateFormat类安全转换

    在Java多线程环境下,SimpleDateFormat类的使用可能会出现线程安全问题。本文主要介绍了Java多线程环境下SimpleDateFormat类的安全转换,通过示例代码详细介绍了如何解决SimpleDateFormat类多线程环境下转换错误问题...

    高并发之-SimpleDateFormat类的线程安全问题和解决方案.docx

    缓存机制使用了一个缓存数组来存储解析和格式化的结果,但是这个缓存数组是共享的,这意味着在多线程环境中,多个线程可能会同时访问和修改这个缓存数组,导致线程安全问题。 重现SimpleDateFormat类的线程安全问题...

    ThreadLocal:如何优雅的解决SimpleDateFormat多线程安全问题

    目录SimpleDateFormat诡异bug复现SimpleDateFormat诡异bug字符串日期转Date日期(parse)Date日期转String类型(format)SimpleDateFormat出现bug的原因如何解决SimpleDateFormat多线程安全问题局部变量使用...

    深入理解Java:SimpleDateFormat安全的时间格式化

    如果需要在多线程环境下使用SimpleDateFormat,可以使用ThreadLocal变量来保存每个线程的SimpleDateFormat实例。 知识点6: DateFormat和SimpleDateFormat类的区别 DateFormat和SimpleDateFormat类都是Java中用于...

    SimpleDateFormat线程不安全的5种解决方案.docx

    在多线程环境下,SimpleDateFormat 由于其内部状态在格式化过程中可能会被多个线程修改,因此会出现线程不安全的现象。解决这一问题的方法有多种,包括将 SimpleDateFormat 定义为局部变量、使用 synchronized 或 ...

    详解SimpleDateFormat的线程安全问题与解决方案

    由于`SimpleDateFormat`不是线程安全的,当多个线程同时使用一个`SimpleDateFormat`实例时,可能会出现竞态条件(race condition)。例如,在线程A和线程B中,如果线程A先执行`parse()`方法,清理了`Calendar`,然后...

    关于SimpleDateFormat的非线程安全问题及其解决方案.docx

    然而,在多线程环境下,`SimpleDateFormat`存在非线程安全的问题,这可能会导致程序运行时出现异常或者错误的结果。 #### 二、问题分析 ##### 1. 非线程安全的原因 `SimpleDateFormat`类内部维护了一些线程不安全...

    java SimpleDateFormat &Calendar

    需要注意的是,由于`SimpleDateFormat`不是线程安全的,所以在多线程环境中,建议为每个线程创建单独的实例。 `Calendar`类则是Java中更底层的日期和时间工具,它提供了一套完整的API来操作日期和时间,包括添加、...

    Java SimpleDateFormat线程安全问题原理详解

    如果需要在多线程环境下使用SimpleDateFormat,可以使用ThreadLocal或FastDateFormat确保线程安全。 Java SimpleDateFormat线程安全问题是Java开发中一个常见的问题。通过使用ThreadLocal或FastDateFormat,我们...

    由浅入深解析 SimpleDateFormat

    1. SimpleDateFormat 是线程不安全的,因此在多线程环境下使用需要特别注意。 2. 创建 SimpleDateFormat 实例需要消耗大量的资源,因此应当尽量少创建实例。 3. SimpleDateFormat 可以使用 applyPattern 方法修改...

    SimpleDateFormat线程不安全的5种解决方案.md

    SimpleDateFormat线程不安全的5种解决方案.md

    java 使用SimpleDateFormat类获取系统的当前时间

    `SimpleDateFormat` 类位于 `java.text` 包下,它的主要功能是将日期和时间对象转换为字符串,或者将字符串解析为日期和时间对象。我们可以通过构造函数创建一个 `SimpleDateFormat` 实例,并传入一个模式字符串来...

    SimpleDateFormat使用详解

    SimpleDateFormat 使用详解 SimpleDateFormat 是 Java 中的一个日期和时间格式化类,它继承自 DateFormat 类。SimpleDateFormat 允许用户以各种方式格式化日期和时间,例如以年、月、日、时、分、秒等不同的格式来...

    Java多线程编程的线程安全性.docx

    Java标准库中有一些类,如ArrayList、HashMap和SimpleDateFormat,并未设计为线程安全,因此在多线程环境下直接使用可能导致数据不一致或其他问题。开发者应当了解每个类的线程安全特性,以便做出正确的选择和适当地...

    有关SimpleDateFormat的常用方法说明

    - `SimpleDateFormat`是线程不安全的,如果在多线程环境中使用,需要考虑同步问题。 - 日期和时间的格式化字符串要与实际情况对应,避免出现理解错误。 以上就是关于`SimpleDateFormat`的一些常见用法和注意事项,...

    JavaScript实现的SimpleDateFormat

    在JavaScript中,没有内置的`SimpleDateFormat`类,它是一个Java中的类,用于日期和时间的格式化。然而,由于JavaScript在处理日期时的功能相对有限,开发者常常需要自定义函数或者使用第三方库来实现类似的功能。这...

    Java理论与实践:描绘线程安全性

    Java中的线程安全性是并发编程中的关键概念,它关乎到多线程环境下程序的稳定性和正确性。线程安全的类意味着在多个线程并行访问时,它们的行为仍然是正确和一致的,无需额外的同步措施。然而,线程安全并不简单地...

    DateFormat多线程问题

    在多线程环境下,不恰当的使用`DateFormat`可能导致数据不一致、性能下降甚至程序崩溃。这篇博客将深入探讨`DateFormat`在多线程环境下的问题及其解决方案。 `DateFormat`类在设计时并未被声明为线程安全的。这意味...

    Java 实例 - 格式化时间SimpleDateFormat使用源代码-详细教程.zip

    `SimpleDateFormat`不是线程安全的,所以在多线程环境中,要么为每个线程创建单独的实例,要么在每次使用后进行同步。 8. **替代方案**: Java 8引入了`java.time`包,其中的`DateTimeFormatter`类提供了更现代且...

Global site tag (gtag.js) - Google Analytics