java什么时候使用 ThreadLocal
当您有一些不是线程安全的对象时,但您希望避免同步访问该对象(例如: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);
}
}
Loading...