Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
DocumentBuilderFactory在Java 5+;中是线程安全的吗;?_Java_Multithreading_Jaxp - Fatal编程技术网

DocumentBuilderFactory在Java 5+;中是线程安全的吗;?

DocumentBuilderFactory在Java 5+;中是线程安全的吗;?,java,multithreading,jaxp,Java,Multithreading,Jaxp,forjavax.xml.parsers.DocumentBuilderFactory中明确指出: DocumentBuilderFactory类的实现不能保证线程安全。由用户应用程序确保从多个线程使用DocumentBuilderFactory。或者,应用程序每个线程可以有一个DocumentBuilderFactory实例。应用程序可以使用同一工厂实例来获取DocumentBuilder的一个或多个实例,前提是工厂实例一次不在多个线程中使用 然而,文件和文档却没有这样说。DocumentBu

for
javax.xml.parsers.DocumentBuilderFactory
中明确指出:

DocumentBuilderFactory类的实现不能保证线程安全。由用户应用程序确保从多个线程使用DocumentBuilderFactory。或者,应用程序每个线程可以有一个DocumentBuilderFactory实例。应用程序可以使用同一工厂实例来获取DocumentBuilder的一个或多个实例,前提是工厂实例一次不在多个线程中使用


然而,文件和文档却没有这样说。
DocumentBuilderFactory现在是线程安全的了吗,还是Sun认为警告太过分了,大家应该更清楚了?

因为如果不告诉我钱是线程安全的话,那么让它线程安全的味道会非常差。您可以自己使用断点来测试这一点。

根据singleton的文档,newInstance方法没有同步化,然后DocumentBuilderFactory在Java 8中仍然不是线程安全的。。。都不在。实际上,构造函数自Java 1.4以来没有改变。

可能的重复不是重复,问题是多线程使用同一工厂构造DocumentBuilder是否安全,而不是尝试使用同一生成器解析多个文档是否安全。一个方法不需要“同步”即可实现线程安全。