是javax.xml.XPathFactory.newInstance()線程安全嗎?Java XPathFactory線程安全
我在問,因爲我發現文檔含糊不清。 The JDK 5 docs根本不提線程安全;在JDK 6他們寫了以下內容:
XPathFactory類不是線程安全的。換句話說, 應用程序的責任是確保在任何給定時刻至多有一個線程是 使用XPathFactory對象。鼓勵實施方案 將方法標記爲同步,以保護自己免受破損的客戶端的攻擊。
據我所知,這不是安全有單實施XPathFactory
,但做這樣的事情應該是安全的:
XPath xPathEvaluator = XPathFactory.newInstance().newXPath();
我缺少的東西?它取決於擴展它的實際類嗎?我是否需要synchronize
包含上述語句的方法?
謝謝,我在想同樣的事情,但我想重新保證:)。 – 2012-02-02 10:27:00
總是在這裏牽手:-) – Thilo 2012-02-02 12:50:57
JAXP-XPath設計有很多不好的地方。其中之一是XPathFactory.newInstance()非常昂貴;另一個是你需要在每個線程中重複地調用它。另一個原因是你無法知道你是否會獲得XPath 1.0引擎或XPath 2.0引擎。問問你自己是否真的想使用這種機制:如果你知道你想要的XPath引擎,有更好的方法來加載它。 – 2012-02-02 14:01:10