Я пишу программу сервлета для доступа к файлам для записи на основе запроса, сделанного клиентом. Запрос содержит имя файла. Допустим, 3 запроса сделаны одновременно. Если два из них запрашивают один и тот же файл, то к файлу необходимо обращаться синхронизированным образом, т. Е. Только после того, как завершится обработка любого одного запроса, следующий может быть обработан. Если третий запрос, который также сделан в то же время, запрашивает другое имя файла, он должен обслуживаться одновременно с другим запросом. Как справиться с этим случаем как синхронного, так и одновременного доступа к файлам?
Я пытался использовать синхронизированный блок для доступа к файлу. Но это не разрешает одновременный доступ для запросов с разными именами файлов.
public class FileServlet extends HttpServlet{
String FileName="";
public void service(HttpServletRequest req, HttpServletResponse res) throws IOException
{
FileName = req.getParameter("file");
synchronized(FileName){
//writing on fileName
}
}
}
Здесь все запрошенные файлы доступны синхронно. Но я ожидаю одновременного доступа к различным файлам.