Lucene QueryParser в нескольких потоках: синхронизировать или создавать новые каждый раз? - PullRequest
5 голосов
/ 02 апреля 2011

У меня есть веб-приложение, в котором пользователи отправляют запросы на индекс Lucene. Запросы анализируются Lucene QueryParser. Я с трудом узнал, что QueryParser не является потокобезопасным.

Лучше ли использовать один экземпляр QueryParser и синхронизировать вызовы с его методом parse()? Или лучше создать новый экземпляр для каждого запроса? (Или я бы лучше обслужил пул QueryParser с?)

Я знаю, что в целом подобные вопросы зависят от конкретных особенностей и требуют профилирования, но, может быть, кто-то может сказать однозначно: "QueryParser очень дешевы / дороги в строительстве"?

1 Ответ

6 голосов
/ 02 апреля 2011

Создайте новый каждый раз.Это легкие объекты, и JVM очень хорошо справляется с созданием объектов и сборкой мусора.Определенно не используйте пул объектов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...