SimpleDateFormat的使用以及注意事项
来源:互联网 发布:maxdos网络克隆工具 编辑:程序博客网 时间:2024/06/13 01:59
1.SimpleDateFormat是线程不安全的
如下代码在单线程的环境是安全的但是在多线程的环境中绝对是不安全的
public class SimpleDateFormatTest {private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");public void format1(){sdf.format(new Date());}public void format2(){sdf.format(new Date());}}
接下来证明它不是线程安全的:
package org.sh.testpaper;import java.text.SimpleDateFormat;import java.util.Date;public class SimpleDateFormatTest {public static void main(String[] args) {Date date1 = new Date();Date date2 = new Date(date1.getTime()+1000*24*60*60);System.out.println("date1="+date1);System.out.println("date2="+date2);SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");SDFThread1 s1 = new SDFThread1(sdf, date1);SDFThread2 s2 = new SDFThread2(sdf, date2);new Thread(s1).start();new Thread(s2).start();}}class SDFThread1 implements Runnable{private SimpleDateFormat sdf ;private Date date;public SDFThread1(SimpleDateFormat sdf,Date date){this.sdf = sdf;this.date = date;}@Overridepublic void run() {while(true){String strDate = sdf.format(date);System.out.println("thread1:"+strDate);if("2014-05-05".equals(strDate)){System.out.println("Error:"+strDate);System.exit(0);}}}}class SDFThread2 implements Runnable{private SimpleDateFormat sdf ;private Date date;public SDFThread2(SimpleDateFormat sdf,Date date){this.sdf = sdf;this.date = date;}@Overridepublic void run() {while(true){String strDate = sdf.format(date);System.out.println("thread2:"+strDate);if("2014-05-04".equals(strDate)){System.out.println("Error:date1"+strDate);System.exit(0);}}}}
测试结果:
date1=Sun May 04 20:08:46 CST 2014date2=Mon May 05 20:08:46 CST 2014thread1:2014-05-05thread2:2014-05-05Error:2014-05-05thread2:2014-05-05thread2:2014-05-05thread2:2014-05-05thread2:2014-05-05thread2:2014-05-05
从测试结果可以看出SimpleDateFormat是线程不安全的。
0 0
- SimpleDateFormat的使用以及注意事项
- SimpleDateFormat 使用注意事项
- SimpleDateFormat获取时间的注意事项
- SimpleDateFormat注意事项
- 注解的使用以及注意事项
- PopupWindow的使用以及注意事项
- strcpy的使用以及注意事项
- SimpleDateFormat 的使用
- SimpleDateFormat的使用详解
- SimpleDateFormat的方法使用
- SimpleDateFormat 的简单使用
- SimpleDateFormat的使用问题
- SimpleDateFormat的使用
- SimpleDateFormat的简单使用
- SimpleDateFormat 的使用
- SimpleDateFormat类的使用
- Android SimpleDateFormat的使用
- SimpleDateFormat的使用
- c++中new和delete的使用方法
- 五一成都峨眉山三日游 20140501~20140503
- terminal的常用快捷键
- session 之session混乱解决方法
- secureCRT 修改中文乱码
- SimpleDateFormat的使用以及注意事项
- [BZOJ1013][JSOI2008][高斯消元]球形空间产生器sphere
- 近期Qt编程的一些总结
- 九.1
- linux 删除指定日期之前的文件
- 转:TCP数据包格式及三次握手建立连接
- C枚举类型
- 一张图看懂原码、反码、补码、移码
- 安全测试学习之XSS漏洞测试