zoukankan      html  css  js  c++  java
  • Java多线程(三)SimpleDateFormat

    多线程报错:java.lang.NumberFormatException: multiple points

    SimpleDateFormat是非线程安全的,在多线程情况下会有问题,在每个线程下得各自new SimpleDateFormat()就可以了

    实现有两种方法:

    1.

    public class DateTools {
    
        public static Date parse(String formatPattern,String dateString) throws ParseException{
            return new SimpleDateFormat(formatPattern).parse(dateString);
        }
        
        public static String format(String formatPattern,Date date){
            System.out.println("format");
            return new SimpleDateFormat(formatPattern).format(date);
        }
    }

    2. ThreadLocal 每个线程都有自己的私有数据

    package threadDemo.date;
    
    import java.text.SimpleDateFormat;
    
    public class DateTools {
    
        private static ThreadLocal<SimpleDateFormat> threadLocals = new ThreadLocal<SimpleDateFormat>();
    
        public static SimpleDateFormat getSimpleDateFormat(String datePattern){
            SimpleDateFormat sdf = null;
            sdf = threadLocals.get();
            if(sdf ==null){
                sdf = new SimpleDateFormat(datePattern);
                threadLocals.set(sdf);
            }
            return sdf;
        }
    }
  • 相关阅读:
    Linux下的目录结构
    VM
    代码命名规范
    java环境及配置
    Code::Blocks 使用Cygwin编译加调试
    vscode使用体会
    openwrt编译笔记
    ubuntu20 使用root登录
    程序员如何更好的表达自己的想法- Graphviz:关系图脚本绘制工具-转
    编译codelite心得
  • 原文地址:https://www.cnblogs.com/newlangwen/p/7590621.html
Copyright © 2011-2022 走看看