utilizo java.text.NumberFormat simplemente para convertir los números en cadenas más legibles, con comas separación de miles, etc. Básicamente lo defino como:Java: ¿problema de sincronización con NumberFormat?
public static NumberFormat nf = NumberFormat.getInstance(Locale.US);
... y luego acabo de llamar nf.format (some_number) en cualquier hilo donde quiera hacer una versión legible de un número. Pero mirando el JavaDoc, dice: "Los formatos numéricos generalmente no están sincronizados. Se recomienda crear instancias de formato separadas para cada subproceso. Si varios subprocesos acceden a un formato al mismo tiempo, se debe sincronizar externamente".
Si sólo estoy usando el método de formato (número) del objeto NumberFormat, podría haber alguna vez un problema de sincronización? Intenté usar NumberFormat.getInstance (Locale.US) .format (number) en su lugar, pero hay una sobrecarga asociada con hacer eso cada vez que siento que probablemente no sea realmente necesario. ¿Esto realmente necesita sincronización externa? ¿O hay una forma más simple y eficiente de lograr lo mismo sin NumberFormat?
Gracias!
Mide esto usando https://gist.github.com/jontejj/5430320, los resultados se publican en http://1.microbenchmarks.appspot.com/run/[email protected]/se.softhouse .common.numbers.NumberFormatBenchmark la ganancia es bastante considerable si los números de formato son lo único que sucede. Esto a pesar de que NumberFormat mantiene un caché para los formateadores creados y solo los clona antes de devolverlos. – jontejj
Y lo mismo se aplica a todas las subclases ... Especialmente a DateFormat – Snicolas