1.ArrayList不是线程安全的,若是想要实现同步,可使用:Collections.synchronizedList(List)将其包裹起来。 java
关于非安全的ArrayList与安全的实现能够参见:http://www.oschina.net/code/snippet_70229_2425 安全
2.SimpleDateFormat也不是线程安全的,在多线程环境下,会出现问题,解决方法是使用ThreadLocal。即便将SimpleDateFormat设置为static,也不可避免,由于这根本是徒劳的。--官方推荐为每一个线程建立一个实例,但显然这种方式比较浪费;但若是使用同步锁机制,又会带来性能问题。因此推荐使用ThreadLocal方式解决:一个线程里的变量是不存在多线程的。 多线程
使用ThreadLocal解决:(也可使用JODA日期时间处理库 /commons-lang 包中的 FastDateFormat 工具类来避免这些问题) 工具
private static final String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss"; public static ThreadLocal local = new ThreadLocal<>(); protected synchronized Object initiaValue(){ return new SimpleDateFormat(DATE_FORMAT); } public static DateFormat getDateFormat(){ return (DateFormat)local.get(); } public static java.util.Date pase(String textDate) throws ParseException{ return getDateFormat().parse(textDate); }参考自:http://lilongfei1030.blog.163.com/blog/static/860152820136260822266/