Спецификация языка Java 7 (JLS7-17.4.5) определяет «правильно синхронизированную» программу следующим образом: «Программа правильно синхронизирована тогда и только тогда, когда все последовательно согласованные выполнения свободны от гонок данных».
JLS7-17.4.5 также утверждает, что:
Без правильной синхронизации возможно очень странное, запутанное и нелогичное поведение.
Итак, с точки зрения программиста, было бы очень полезно иметь инструмент для определения того, "правильно ли синхронизирована" программа в соответствии с приведенным выше определением.
Есть такой инструмент? Я ничего не мог найти в гугле по этому поводу. Если такого инструмента нет, можно ли его сделать?