最近有点小忙,好久木有来分享点东西了,最近打算写点多线程相关的东西,下面来介绍并分享下ThreadLocal这个东西:
一、定义
ThreadLocal是一个线程的局部变量,只有当前线程可以访问,是线程安全的。
二、用法
因SimipleDateFormat.parse()方法并不是线程安全的,使用ThreadLocal为每一个线程都产生一个SimpleDateFormat对象实例,如下所示:
static ThreadLocal<SimpleDateFormat> tl = new ThreadLocal<SimpleDateFormat>();
public static class ParseDate implements Runnable{
int i=0;
public ParseDate(int i){
this.i = i;
}
public void run(){
try{
if(tl.get() == null) {
tl.set(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
}
Date date = tl.get().parse("2019-07-23 10:05:"+i%60);
System.out.println(i + ":" date);
} catch(ParseException e){
e.printStackTrace();
}
}
}
后续还会来更新ThreadLocal的实现原理篇!!!