据我了解,如果我使用 db.getView() 从数据库打开 View ,则从不同线程多次执行此操作是没有意义的。
但是假设我有多个线程使用 getAllDocumentsByKey() 搜索 View ,这样做并并行迭代 DocumentCollections 是否安全?
此外,Document.recycle() 会与 DocumentCollection 混淆,如果两个线程搜索相同的值并在其集合中获得相同的结果,这会互相混淆吗?
注意:我刚刚开始深入研究这个问题,但认为在这里记录是一件好事,也许我会很幸运,有人会得到答案。
最佳答案
Domino Java API 并不真正喜欢跨线程共享对象。如果在一个线程中 recycle() 一个 View ,它将删除引用该 View 的所有对象的后端 JNI 引用。
所以你会发现你的其他线程被破坏了。
Bob Balaban 写了一系列关于 Java API 如何工作和回收的非常好的文章。这是其中一部分的链接。
关于lotus-notes - Domino 线程中的 View 安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9073165/