java – Lucene IndexWriter线程安全
发布时间:2020-12-14 16:33:22 所属栏目:Java 来源:网络整理
导读:Lucene鼓励从多个线程重用IndexWriter. 假设两个线程可能引用了IndexWriter,如果线程A在作者上调用close,则线程B将留下无用的作者.但是据我了解,lucene不知何故知道另一个线程使用同一个作者,并延续其关闭. 这是真的吗? lucene如何跟踪另一个线程使用作者?
Lucene鼓励从多个线程重用IndexWriter.
假设两个线程可能引用了IndexWriter,如果线程A在作者上调用close,则线程B将留下无用的作者.但是据我了解,lucene不知何故知道另一个线程使用同一个作者,并延续其关闭. 这是真的吗? lucene如何跟踪另一个线程使用作者? 编辑 解决方法
如果一个线程在其他线程仍在使用它的情况下关闭IndexWriter,则会得到不可预测的结果.我们尝试让其他线程击中AlreadyClosedException,但这只是最好的努力(不能保证). EG你也可以轻松地打NullPointerException.所以你必须同步外部,以确保你不这样做.
最近(现在只有Lucene的主干,最终要4.0),IndexWriter里面的一个大线程瓶颈是固定的,允许段刷新并发运行(以前它们是单线程的).在并发硬件上运行许多索引线程的应用程序上,可以大大提升索引的吞吐量.详见http://blog.mikemccandless.com/2011/05/265-indexing-speedup-with-lucenes.html. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |