java什么时候使用 ThreadLocal

走着路睡觉
  • java
小于 1 分钟

当您有一些不是线程安全的对象时,但您希望避免同步访问该对象(例如:SimpleDateFormat)。所以,可以给每个线程它自己的对象实例。

public class Foo
{
    // SimpleDateFormat is not thread-safe, so give one to each thread
    private static final ThreadLocal<SimpleDateFormat> formatter = new ThreadLocal<SimpleDateFormat>(){
        @Override
        protected SimpleDateFormat initialValue()
        {
            return new SimpleDateFormat("yyyyMMdd HHmm");
        }
    };

    public String formatIt(Date date)
    {
        return formatter.get().format(date);
    }
}
上次编辑于:
贡献者: zhaojingbo
Loading...