许多程序读单XMLJava

Many programs reading single XML Java

我的程序使用 SAX 解析器(或者可能是 DOM 解析器)从位于服务器某处的 XML 文件中读取。现在很多人使用我的程序,所以很多程序有时会访问这个 XML 文件。会不会有问题,例如两个用户(同时使用我的程序)想同时读取(只读不写)XML 文件?我是否必须考虑我的程序中的任何特殊内容,或者这将由 OS 处理?

不幸的是,我不熟悉同时访问文件,或者如果多个人使用我的程序而发生这种情况。

该程序是用 Java 11.

构建的

应该不会造成问题。这不一定是最有效的方法,但对于低吞吐量的应用程序,它应该工作得很好(我们有一个内部应用程序每天处理大约 10 个请求,这正是我们的做法。)

如果您决定更加雄心勃勃并将已解析的文档缓存在内存中,您需要注意 Java 中的默认 DOM 实现不是线程安全的 - 即使对于只读访问。这就是我建议人们使用第三方树模型(例如 JDOM2 或 XOM)的原因之一。