是的标准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其中恢复的国家时,这是第一次创建的。如果你要的线程本地的路线,不要忘了打电话给这个,或者你欺骗.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top