это немного связано с этим вопросом .
Я использую make для извлечения некоторой информации о некоторых программах на Си. Я обертываю компиляцию, используя скрипт bash, который запускает мою Java-программу, а затем gcc. В основном, я делаю:
make CC=~/my_script.sh
Я хотел бы использовать несколько заданий (опция -j с make). Он запускает несколько процессов в соответствии с правилами зависимости.
Если бы я хорошо понял, у меня было бы столько же экземпляров jvm, сколько и рабочих мест, верно?
Дело в том, что я использую sqlite-jdb для сбора информации. Таким образом, проблема состоит в том, как избежать нескольких процессов, пытающихся изменить базу данных одновременно?
Кажется, что блокировка sqlite зависит от jvm (я имею в виду, что одну блокировку можно «увидеть» только внутри блокирующей jvm), и это то же самое для RandomAccessFile.lock ().
У вас есть идеи, как это сделать? (создание файла tmp и затем поиск, существует ли он или нет, кажется одной из возможностей, но может быть дорогостоящим. Таблица блокировки в дБ?)
спасибо