В Java Какой гарантированный способ получить FileLock от FileChannel при доступе к RandomAccessFile? - PullRequest
1 голос
/ 20 мая 2010

Я пытаюсь использовать

FileLock lock(long position, long size,boolean shared)

в FileChannel объект Согласно Javadoc он может бросить OverlappingFileLockException. Когда я создаю тестовую программу с 2 потоками, метод блокировки, кажется, ожидает получения блокировки (как исключительной, так и неисключительной). Но когда число потоков увеличивается в остром сценарии из-за перекрытия блокировки файла, генерируется исключение и обработка замедляется из-за блокировки в таблице блокировки файлов.

Каков наилучший способ получить блокировку, избегая исключения OverlappingFileLockException?

1 Ответ

0 голосов
/ 20 мая 2010

Избегайте дублирования регионов. Вы также можете попробовать установить флаг shared на true. Но будьте осторожны, общие блокировки зависят друг от друга. Поэтому они могут быть доступны не во всех системах.

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