zoukankan      html  css  js  c++  java
  • DateFormat的线程安全问题

    在下面例子中,System.out.println(data+ " : " + tempDateStr); 打印的结果是不一样的。
    public class DateFormatIsNotThreadSafe {
          static final SimpleDateFormat dateFormat =
                new SimpleDateFormat("dd-MM-yyyy");
          
          static String[] testData = {"01-10-1999", "14-10-2001", "31-10-2007"};
          
          public static void main(String[] args){
                for (final String data : testData){            
                            new Thread(){
                                  public void run(){
                                        try {
                                              Date date = dateFormat.parse(data);
                                              String tempDateStr = dateFormat.format(date);
                                              System.out.println(data+ " : " + tempDateStr);
                                        } catch (ParseException e) {
                                              // TODO Auto-generated catch block
                                              e.printStackTrace();
                                        }
                                  }
                            }.start();
                }
          }
    }

    在运行的100个线程中,有些线程运行的结果是正确的,有些线程的运行结果是错误的
  • 相关阅读:
    CentOS 7部署KVM之三基本管理
    CentOS 7部署KVM之二安装配置
    CentOS 7部署KVM之一架构介绍
    DOM 事件流
    渐进增强与优雅降级
    (三)跟我一起玩Linux网络服务:DHCP服务配置之主服务器配置
    (二)跟我一起玩Linux网络服务:BIND的自动部署(附上完整的代码)
    责任链模式--行为模式
    装饰模式--- 结构型模式
    elastic-job+zookeeper实现分布式定时任务调度的使用(springboot版本)
  • 原文地址:https://www.cnblogs.com/cando/p/2293701.html
Copyright © 2011-2022 走看看