代码之家  ›  专栏  ›  技术社区  ›  MRalwasser

Java和XML(JAXP)-缓存和线程安全如何?

  •  26
  • MRalwasser  · 技术社区  · 16 年前
    1. 对象可以重用 (在相同或不同的文件中)使用 用于XML的Java API

      • DocumentBuilderFactory
      • DocumentBuilder
      • XPath
      • Node
      • ErrorHandler
    2. 是否建议 隐藏物

    3. (再)使用 在那些物体中 ?

    1 回复  |  直到 15 年前
        1
  •  31
  •   Community Mohan Dere    9 年前

    重新使用

    在同一个线程中,这些对象可以而且应该被重用。例如,您可以使用DocumentBuilder来解析多个文档。

    线程安全性

    DocumentBuilderFactory曾经明确指出它不是线程安全的,我相信这仍然是事实:

    保证线程安全。它是向上的 以确保 关于使用 一根线。

    从堆栈溢出来看,DocumentBuilder似乎也不是线程安全的。但是,在Java SE 5中添加了一个重置方法,允许您重用DocumentBuilders:

    从Javadoc来看,XPath不是线程安全的

    不可重入。换言之,是的 确保一个XPath对象不是 在任何时候从多个线程使用 方法,应用程序可能 不递归调用

    Xerces网站上的节点不是线程安全的

    线程安全?不,多姆没有 要求实现是线程 安全。如果需要访问DOM 需要添加相应的锁 应用程序代码。