DocumentBuilderFactory在Java 5+中是线程安全的吗?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (21)

Java 1.4的文档用于javax.xml.parsers.DocumentBuilderFactory毫不含糊地指出:

DocumentBuilderFactory类的实现不保证是线程安全的。由用户应用程序决定是否从多个线程使用DocumentBuilderFactory。或者,应用程序可以为每个线程拥有一个DocumentBuilderFactory实例。应用程序可以使用工厂的相同实例来获取DocumentBuilder的一个或多个实例,前提是工厂实例一次不会在多个线程中使用。

Java 5的Java 6的文档,但是,说什么的那种。DocumentBuilderFactory现在是线程安全的吗,还是Sun刚刚决定警告是过度杀毒,人们应该知道更好?

提问于
用户回答回答于

因为如果没有告诉我的钱是安全的,它就会变得非常糟糕。您可以使用断点自己测试它。

用户回答回答于

DocumentBuilderFactory类的实现不保证是线程安全的。由用户应用程序决定是否从多个线程使用DocumentBuilderFactory。或者,应用程序可以为每个线程拥有一个DocumentBuilderFactory实例。应用程序可以使用工厂的相同实例来获取DocumentBuilder的一个或多个实例,前提是工厂实例一次不会在多个线程中使用。

DocumentBuilder上有一个reset()方法,可在第一次创建时将其恢复到状态。如果你正在使用ThreadLocal路由,请不要忘记调用它,否则你会崩溃。

扫码关注云+社区