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个线程中,有些线程运行的结果是正确的,有些线程的运行结果是错误的
  • 相关阅读:
    LC.225. Implement Stack using Queues(using two queues)
    LC.232. Implement Queue using Stacks(use two stacks)
    sort numbers with two stacks(many duplicates)
    LC.154. Find Minimum in Rotated Sorted Array II
    LC.81. Search in Rotated Sorted Array II
    LC.35.Search Insert Position
    前后端分离:(一)
    Redis基本使用(一)
    GIT篇章(二)
    GIT篇章(一)
  • 原文地址:https://www.cnblogs.com/cando/p/2293701.html
Copyright © 2011-2022 走看看