Как прочитать один и тот же файл дважды, в разных задачах, используя службу executor?
Я использовал приведенный ниже пример структуры кода, но при чтении одного и того же файла одновременно выдает ошибку 409. Как решить эту проблему?
//Sample code
ExecutorService ee = ExecutorService.FixedThread(2);
Callable<Object> C1 = ()-> {
InputStream in = new inputStream("https://server.com/file1");
BufferReader br = new BufferReader(in);
SysOut(br.lines);
}
Callable<Object> C2 = ()-> {
InputStream in = new inputStream("https://server.com/file1");
BufferReader br = new BufferReader(in);
SysOut(br.lines);
}
List task = new list();
task.add(c1);
task.add(c2);
ee.invokeAll(task);
ee.shutDown();
Каждая отдельная задача работает нормально.
Но когда обе задачи выполняются одновременно, обе задачи пытаются получить доступ к одному и тому же файлу и выдают ошибки с ошибкой 409. ошибка конфликта.
Как ее решить?
Примечание. Мне нужно одновременно вызывать один и тот же файл из другой задачи. Я не хочу читать файл один раз и сохранять содержимое в списке. Затем используйте этот список для дальнейшей обработки.