我想創建一個線程安全的SAX解析器的單例實例。單線程安全的SAX解析器實例
但是我不能使用按需語言,因爲SAX解析器會拋出SAXException,如果它被創建爲類變量,則無法處理該SAXException。這是我寫的代碼。
public class Parser {
private static SAXParser parser;
Parser() throws ParserConfigurationException, SAXException {
if (parser==null)
parser=LazyHolder.factory.newSAXParser();
}
private static class LazyHolder {
private static final SAXParserFactory factory=SAXParserFactory.newInstance();
}
public SAXParser getInstance() {
return parser;
}
}
有沒有更好的實現方法?
我不明白這應該如何工作。你想要幾個線程使用相同的SAXParser實例嗎?當一個線程使用這個實例時,其他線程不能,對嗎? –
不,我希望像單個SAXParser實例可以被不同的線程同時使用。真的有可能嗎? –
解析器的新實例有點貴。是否有任何有效的方法在多個線程中重用相同的實例。我在理解它時遇到了問題。 –