我想创建一个线程安全的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实例可以被不同的线程同时使用。真的有可能吗? –
解析器的新实例有点贵。是否有任何有效的方法在多个线程中重用相同的实例。我在理解它时遇到了问题。 –