【发布时间】:2012-02-25 00:00:29
【问题描述】:
javax.xml.XPathFactory.newInstance() 线程安全吗?
我之所以这么问,是因为我发现文档对此含糊不清。 The JDK 5 docs 根本不提线程安全;他们在JDK 6 中写道:
XPathFactory 类不是线程安全的。换句话说,它是 应用程序有责任确保最多有一个线程 在任何给定时刻使用 XPathFactory 对象。实现是 鼓励将方法标记为同步以保护自己免受 破碎的客户。
据我了解,为XPathFactory 单独实现是不安全的,但这样做应该是安全的:
XPath xPathEvaluator = XPathFactory.newInstance().newXPath();
我错过了什么吗?它是否取决于扩展它的实际类?我需要synchronize包含上述语句的方法吗?
【问题讨论】:
-
根据docs.oracle.com/javase/7/docs/api/javax/xml/xpath/… XPath 表达式也不是线程安全的,也不是可重入的
标签: java xml xpath thread-safety