как обрабатывать параллелизм в сервлетах Java - PullRequest
3 голосов
/ 25 января 2010

В моем методе сервлета doPost мне нужно получить доступ к файлу (общему ресурсу) и обновить файл. Как обслуживать около 100 пользователей, использующих это одновременно?

С уважением, Митхун

Ответы [ 4 ]

6 голосов
/ 25 января 2010
  • Создать отдельный одноэлементный класс для доступа к файлу.
  • Используйте Read и WriteLock из пакета java.util.concurent для защиты доступа к файлам.
  • Кэшируйте, чтобы вам не приходилось читать файлы, если все, что вам нужно сделать, это вернуть содержимое файла.
3 голосов
/ 25 января 2010

Вы уверены, что файл - это то, как вы хотите справиться с этим?Защита доступа к данным нескольких одновременно работающих пользователей - это большая часть того, что делает современная база данных.

1 голос
/ 25 января 2010

При высоком уровне параллелизма (для записи) синхронизация обойдется вам в большую пропускную способность.

Базы данных более подходят для этого, если это возможно в вашем проекте.

0 голосов
/ 25 января 2010

Я бы воспользовался пакетами java.util.concurrent, добавленными в Java 1.5. В частности, BlockingQueue для постановки в очередь запросов и обработки их во втором пуле потоков.

...