1. Causas de problemas de seguridad del hilo
Los problemas de seguridad del hilo son causados por variables globales y variables estáticas.
2. Problemas de seguridad del hilo
SimpleDateFormate sdf = new SimpleDateFormat (); Use sdf.parse (datestr); sdf.format (fecha); Hay una referencia al objeto Caleadar en SDF.Parse (Datestr); en el código fuente, calendar.clear (); y calendario.gettime (); // Obtenga el momento del calendario
Si el hilo A llama sdf.parse () y aún no ha ejecutado calendar.gettime () después de calendar.clear (), el hilo B llama a SDF.Parse () nuevamente, entonces el hilo B también ejecuta el método sdf.clear (), que hace que los datos del calendario de AT del hilo A se eliminen;
Threadlocal usa espacio para intercambiar tiempo, sincronizado utiliza tiempo para intercambiar espacio
Use ThreadLocal para resolver la seguridad del hilo:
clase pública ThreadLocalDateUtil {private static final string date_format = "yyyy-mm-dd hh: mm: ss"; Private Static ThreadLocal <CeFormat> ThreadLocal = new ThreadLocal <dateFormat> (); public static dateFormat getDateFormat () {dateFormat df = ThreadLocal.get (); if (df == null) {df = new SimpleDateFormat (date_format); ThreadLocal.set (df); } return df; } public static String FormatDate (fecha de fecha) lanza ParseException {return getDateFormat (). Format (fecha); } Public Static Date Parse (String Strdate) arroja ParseException {return getDateFormat (). parse (strdate); }}Usando la solución sincronizada:
Datesyncutil de clase pública {static static private simpledateFormat sdf = new SimpleDateFormat ("yyyyy-mm-dd hh: mm: ss"); Public static String FormatDate (fecha de fecha) arroja ParseException {sincronizado (SDF) {return sdf.format (fecha); }} public fecha estática PARSE (String Strdate) arroja ParseException {sincronizado (sdf) {return sdf.parse (strdate); }}}Gracias por leer este artículo, espero que pueda ayudarlo. ¡Gracias por su apoyo para este sitio web!