我正在尝试构建一个Lucene演示,整个项目仅使用一个线程进行写入,另一个线程进行读取。
我想减少Lucene内部任何可能的成本,所以我想知道删除所有锁获取是否安全?
例如
在IndexWriter
中:writeLock = lockDir.obtainLock(WRITE_LOCK_NAME);
在SimpleFSDirectory
中:this(path, FSLockFactory.getDefault());
最佳答案
只是不要这样做。如果您有一个线程,您将不会注意到获取锁的任何开销。对 CPU 周期和 IO 人员进行编程比您想要优化的人员花费的时间要多得多。
关于java - Lucene:由于我只使用一个线程,因此删除其源代码中的所有锁是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47608883/