Экспозиция:
Я нахожусь на Linux / Mac.
Часть моего кода на Java, часть моего кода на C ++.
Для быстрой связи они оба имеют один и тот же файл.
Я хочу синхронизировать код Java & C ++.
Я знаю следующее:
1) учитывая два потока в Java, я могу использовать блокировки / мониторы.
2) учитывая один кусок кода на Java, один на C ++, я могу их синхронизировать по tcp / ip
3) учитывая два фрагмента кода C ++, которые отображают область памяти, я могу синхронизировать их, используя gcc's Compare_and_swap для целого числа в области mmaped.
Вопрос:
Учитывая, что часть моего кода на Java, часть моего кода на C ++, могу ли я как-то сделать (3) - поддерживает ли JVM какой-либо тип атомарного сравнения и обмена? Так что и мой код на Java и C ++ может использовать это целое число как своего рода блокировку?
Спасибо!