У меня многопоточная Java-программа с кучей правил для потоковой обработки: например, код в классе A должен вызываться только из потока пользовательского интерфейса; 3 метода в классе B должны быть вызваны только из сетевого потока и т.д.
Любые предложения о том, как делать утверждения или другие проверки кода, которые соблюдают эти правила? Я бы хотел сделать эквивалент тестирования для "инвариантов", чтобы предотвратить ошибки кодирования при использовании потоков.