Estoy buscando un reemplazo seguro para subprocesos SimpleDateFormat
. parseObject
en good old FastDateFormat
no está implementado y solo arroja un error. ¿Algunas ideas? No necesito nada sofisticado, solo hilo de seguridad y la capacidad de manejar este patrón: "yyyy-MM-dd"
.Analizador de fechas a prueba de hilos
Respuesta
Si es posible, use Joda Time. Sus analizadores de fecha/hora son seguros para la ejecución de subprocesos y, en general, es más API más agradable que Date
/Calendar
.
Usted puede uso sólo sus analizadores y luego convertir los valores de retorno a Date
, pero personalmente recomendaría el uso de toda la biblioteca en su lugar.
¿Por qué no poner la llamada de SimpleDateFormat.parseObject()
en su propio bloque synchronized
?
Se encontró solution.
public class ThreadSafeSimpleDateFormat {
private DateFormat df;
public ThreadSafeSimpleDateFormat(String format) {
this.df = new SimpleDateFormat(format);
}
public synchronized String format(Date date) {
return df.format(date);
}
public synchronized Date parse(String string) throws ParseException {
return df.parse(string);
}
}
Como se indica en this post usted puede sincronizar, uso de hilo o locales Joda-Time.
Por ejemplo, utilizando ThreadLocals:
public class DateFormatTest {
private static final ThreadLocal<DateFormat> df
= new ThreadLocal<DateFormat>(){
@Override
protected DateFormat initialValue() {
return new SimpleDateFormat("yyyyMMdd");
}
};
public Date convert(String source)
throws ParseException{
Date d = df.get().parse(source);
return d;
}
}
+1 Sin bloqueo. Memoria comercial para seguridad de hilos. No hay una gran biblioteca externa para el caso simple. – shellholic
Su respuesta es una víctima colateral de una bomba de gran reputación. – shellholic
- 1. Un analizador de fechas "inteligente" (indulgente)?
- 2. generador de números aleatorios uniforme a prueba de hilos
- 3. Caché a prueba de hilos de un objeto en java
- 4. /fechas como terminales en NLTK analizador
- 5. Mejor analizador de fechas y formateador de JavaScript?
- 6. ¿Cómo realizo una prueba unitaria usando hilos?
- 7. Analizador-analizador Scala insensible a las mayúsculas y minúsculas
- 8. ¿Cómo invoca TestNG un método de prueba usando múltiples hilos?
- 9. Métodos de UIKit a prueba de subprocesos
- 10. Hilos frente a Async
- 11. Enlazar hilos a procesadores
- 12. Hilos frente a núcleos
- 13. ¿Cómo se prueba un método que genera hilos?
- 14. Analizador/Analizador para Erlang?
- 15. ¿Hilos dentro de hilos en Java?
- 16. EBNF a Scala combinador analizador
- 17. Pasar estructuras de datos a diferentes hilos
- 18. acceso a la matriz de múltiples hilos
- 19. analizador SAX vs XMLPull analizador
- 20. analizador
- 21. Matriz de fechas entre dos fechas
- 22. Analizador de consultas MySQL
- 23. Lucene.NET, StandardAnalyzer, stopwords y seguridad de hilos
- 24. Flex ++ Analizador de BisonC++
- 25. hilos de nomenclatura y conjuntos de hilos-piscinas de ExecutorService
- 26. Nombreme un analizador binario. Un analizador de datos binarios
- 27. Analizador de idioma DOT
- 28. Analizador de código HTML
- 29. Hilos Java vs Hilos OS
- 30. ¿Cómo utilizar un controlador de excepciones no detectadas para una prueba de múltiples hilos en junit?
que pueden no funcionar bien, pero es fácil. El rendimiento dependerá de cuántos hilos realmente intenten acceder al formateador al mismo tiempo. Intentaría esto (o simplemente ajustando tus llamadas a SimpleDateFormat en un bloque de sincronización) primero para ver si realmente es un problema. – AngerClown