Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Межпроцессный мьютекс Java

Автор вопроса: FilipОтветов: 2

Мне нужно реализовать какой-то межпроцессный мьютекс в Java. Я рассматриваю возможность использования API FileLock, как рекомендовано в этом нить. В основном я буду использовать фиктивный файл и блокировать его в каждом процессе.

Это лучший подход? Или что-то подобное встроено в стандартный API (не могу найти).

Подробнее см. ниже:

Я написал приложение, которое читает некоторые входные файлы и обновляет некоторые таблицы базы данных в соответствии с тем, что в них находит (это сложнее, но бизнес-логика здесь не имеет значения).

Мне нужно обеспечить взаимное исключение между несколькими обновлениями базы данных. Я пытался реализовать это с помощью LOCK TABLE, но это не поддерживается используемым мной движком. Итак, я хочу реализовать поддержку блокировки в коде приложения.

javalockingmutex

Ответы

Ответ 1 · рейтинг 5 · Filip

Я выбрал подход FileLock API и реализовал простой мьютекс на основе:

Все процессы используют один и тот же фиктивный файл для получения блокировок.

Ответ 2 · рейтинг 2 · Denis Kulagin

Зачем использовать файлы, если у вас есть база данных? Попробуйте использовать блокировку базы данных следующим образом (https://dev.mysql.com/doc/refman/5.0/en/innodb-locking-reads.html).

Кстати, какой движок базы данных вы используете? Это может помочь, если вы перечислите его.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы