是DocumentBuilder.分析()线的安全吗?
-
09-06-2019 - |
题
是的标准Java1.6 内xml。分析程序.DocumentBuilder 流线的安全吗?它是安全的通话的分析()方法从几个在线平行的?
对如果是的话,为什么不试并没有提到的问题,但是 如果是的话,为什么不试用一下我的同类 在Java1.4具体地说,它的 是不是 是并发;所以我可以假定在1.6它是什么?
其原因是,我有几百万个运行的任务在一个ExecutorService,并且它似乎是昂贵的呼DocumentBuilderFactory.newDocumentBuilder()每一时间。
解决方案
即使DocumentBuilder.分析显示不变异构建它在太阳JAVA默认的执行情况(基于Apache了xerces).偏心设计的决定。你可以做什么?我想用一个线程本地:
private static final ThreadLocal<DocumentBuilder> builderLocal =
new ThreadLocal<DocumentBuilder>() {
@Override protected DocumentBuilder initialValue() {
try {
return
DocumentBuilderFactory
.newInstance(
"xx.MyDocumentBuilderFactory",
getClass().getClassLoader()
).newDocumentBuilder();
} catch (ParserConfigurationException exc) {
throw new IllegalArgumentException(exc);
}
}
};
(免责声明:没有那么多的试图编码。)
其他提示
有一个reset()方法上DocumentBuilder其中恢复的国家时,这是第一次创建的。如果你要的线程本地的路线,不要忘了打电话给这个,或者你欺骗.
不隶属于 StackOverflow