ThreadLocal 作用
ThreadLocal 通过操作Thread实例中的(ThreadLocalMap)threadlocals对象来实现为对应线程单独创建一份对应的变量副本的作用,避免由于多线程操作对象而引起的对象线程不安全的问题。
ThrealLocal 基本使用方式(以SimpleDateFormate为例):
import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;/*** 使用ThreadLocal以空间换时间解决SimpleDateFormat线程安全问题。** @author**/public class DateUtil {private static final String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";@SuppressWarnings("rawtypes")private static ThreadLocal threadLocal = new ThreadLocal() {protected synchronized Object initialValue() {return new SimpleDateFormat(DATE_FORMAT);}};public static DateFormat getDateFormat() {return (DateFormat) threadLocal.get();}public static Date parse(String textDate) throws ParseException {return getDateFormat().parse(textDate);}}
