V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
jzmws
V2EX  ›  程序员

ThreadLocal 如何带参数进行初始化

  •  
  •   jzmws · Dec 24, 2019 · 4381 views
    This topic created in 2320 days ago, the information mentioned may be changed or developed.

    SimpleDateFormat 非线程安全, 在阿里 Java 开发手册上推荐以下写法 ,可是这种写法参数是写固定的,而实际需要传入指定参数. 比如说只要显示年月日

    private ThreadLocal dateFormat = new ThreadLocal() { @Override protected DateFormat initialValue() { return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); } };

    问题: 如何在调用或者初始化时候传入自定义参数.

    10 replies    2019-12-25 11:43:08 +08:00
    Kaiv2
        1
    Kaiv2  
       Dec 24, 2019 via Android
    放到调用处啊
    twirain
        2
    twirain  
       Dec 24, 2019
    新建个类
    chendy
        3
    chendy  
       Dec 24, 2019
    format 是动态的,就不需要做这个 ThreadLocal 的优化了
    或者做多个 ThreadLocal 保存各种要用到的 format
    SoloCompany
        4
    SoloCompany  
       Dec 24, 2019
    SimpleDateFormat 不是线程安全的这没错
    问题是你为什么要重用他,不重用就不存在线程安全问题
    jenschen
        5
    jenschen  
       Dec 24, 2019 via iPhone
    ThreadLocal 是对每个线程复制一个值,来解决并发问题。直接用就可以了
    lxk11153
        6
    lxk11153  
       Dec 24, 2019
    org.apache.commons.lang3.time.FastDateFormat
    Raymon111111
        7
    Raymon111111  
       Dec 24, 2019
    如果是专门想解决 SimpleDateFormat 的问题

    那答案是不用这个类, 有很多更好用的替代类
    CStarter
        9
    CStarter  
       Dec 25, 2019 via Android
    这个类用的时候直接 new,不要复用。
    非要复用的话,自定义类继承 Threadlocal,定义自己的方法
    hzgit
        10
    hzgit  
       Dec 25, 2019
    ThreadLocal 初始化:静态方法 withInitial
    SimpleDateFormat 非线程安全:LocalDateTime/LocalDate/LocalTime
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2421 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 50ms · UTC 11:08 · PVG 19:08 · LAX 04:08 · JFK 07:08
    ♥ Do have faith in what you're doing.