SimpleDateFormat线程不安全
来源:互联网 发布:淘宝嘉年华羽绒服女 编辑:程序博客网 时间:2024/06/05 18:53
由于SimpleDateFormat在解析时间的时候,
经历了两步,
Date parse() { calendar.clear(); // 清理calendar ... // 执行一些操作, 设置 calendar 的日期什么的 calendar.getTime(); // 获取calendar的时间}
分别是clear()和setTime()。
例如当线程A执行clear操作时,线程B还没有执行clear会造成两个数据一起删除,线程A和线程B,
无法准确获得数据。
解决方法有:
1.将SimpleDateFormat不设置为静态。
2.使用ThreadLocal
3.使用FastDateFormat
这个方法需要引用第三方包
*线程不安全代码
package hello;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;public class DateFormatTest extends Thread{private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");private String name;private String dateStr;private boolean flag;public DateFormatTest(String name,String dateStr,boolean flag){this.name = name;this.dateStr = dateStr;this.flag = flag;}public void run(){Date date = null;try {date = sdf.parse(dateStr);} catch (ParseException e) {// TODO Auto-generated catch blocke.printStackTrace();}System.out.println("name:"+name +" date:"+date+ "" );}public static void main(String[] args) throws ParseException {ExecutorService exec = Executors.newCachedThreadPool();//证明其线程不安全for(int i=0;i<10;i++){exec.submit(new DateFormatTest("张三 "+i, "2015-11-12", false));exec.submit(new DateFormatTest("李四 "+i, "1990-01-2", false));}//exec.shutdown();}}
0 0
- java SimpleDateFormat线程不安全
- SimpleDateFormat 线程不安全
- SimpleDateFormat线程不安全
- simpledateformat线程不安全解决方案
- SimpleDateFormat线程不安全问题
- SimpleDateFormat线程不安全
- SimpleDateFormat线程不安全
- simpledateformat线程不安全解决方案
- SimpleDateFormat线程不安全 【坑】
- SimpleDateFormat非线程不安全
- SimpleDateFormat线程不安全及解决办法
- SimpleDateFormat线程不安全及解决办法
- SimpleDateFormat线程不安全及解决办法
- SimpleDateFormat线程不安全及解决办法
- Java SimpleDateFormat 线程不安全问题及解决方法
- 解决SimpleDateFormat的线程不安全问题的方法:ThreadLocal
- Java之——SimpleDateFormat 线程不安全问题及解决方法
- 关于jdk1.7的SimpleDateFormat类线程不安全
- Android Studio2.0 教程从入门到精通Windows版 - 安装篇
- 鼠标悬停,背景色渐变
- 内存管理相关
- package 、import
- python:一种代替 switch--case 的方法
- SimpleDateFormat线程不安全
- TS时间戳
- 基础总结篇之一:Activity生命周期
- Service的生命周期与启动方式
- 区间DP(括号序列,uva1626)
- iOS 学习笔记 运动事件和远程控制
- fb_post
- struts2拦截器解决请求乱码和输出乱码
- 自己的项目和UCene如何整合