2010-08-09 5 views
25
  1. me gustaría saber qué objetos pueden ser reutilizados (en el mismo o diferente documento) cuando se utiliza la API de Java para XML procesamiento, JAXP:Java y XML (JAXP): ¿qué pasa con el almacenamiento en caché y la seguridad de las hebras?

    • DocumentBuilderFactory
    • DocumentBuilder
    • XPath
    • Node
    • ErrorHandler (EDIT: se me olvidó que esto tiene que ser implementado en mi propio código, lo siento)
  2. es aconsejable un caché dicho objeto, o lo hacen las implementaciones JAXP ya caché de ellos?

  3. ¿Está el (re) utilizar de esos objetos Hilo de seguridad?

Respuesta

27

reutilización

En el mismo hilo esos objetos pueden y deben ser reutilizados. Por ejemplo, puede usar DocumentBuilder para analizar múltiples documentos.

Seguridad para subprocesos

DocumentBuilderFactory utiliza para indicar explícitamente que no era hilo de seguridad, creo que esto sigue siendo cierto:

Una implementación de la clase DocumentBuilderFactory NO se garantiza que sea el hilo seguro. Está en a la aplicación del usuario para asegurarse sobre el uso de DocumentBuilderFactory de más de un hilo.

De desbordamiento de pila, DocumentBuilder no parece ser seguro para subprocesos tampoco. Sin embargo, en Java SE 5 se añadió un método de restablecimiento para que pueda volver a utilizar DocumentBuilders:

XPath no es hilo de seguridad, desde el Javadoc

Un objeto XPath no es seguro para subprocesos y no reentrante. En otras palabras, es responsabilidad de la aplicación de asegúrese de que un objeto XPath no es usado de más de un hilo en cualquier momento dado, y mientras el evaluar se invoca método, aplicaciones puede no recursiva llamar al evaluar método.

nodo no es hilo de seguridad, desde el sitio web Xerces

es la implementación DOM Xerces flujos seguros? No. DOM no requiere implementaciones para ser seguro . Si necesita acceder al DOM desde múltiples hilos, se requiere para agregar los bloqueos apropiados al código de la aplicación.

ManejadorError es una interfaz, por lo que corresponde a la aplicación de esa interfaz para garantizar la seguridad de rosca. Para indicaciones sobre hilo de seguridad que podría comenzar aquí:

+0

¿Qué pasa con el almacenamiento en caché/reutilización/hilo de seguridad de objetos Node? – MRalwasser

+0

No se garantiza que los nodos DOM sean seguros para subprocesos. –

+0

¿Dónde se especifica esto? – MRalwasser

Cuestiones relacionadas