Следующий класс не поточно- (как доказано в Proving the following code not thread safe)Thread рамки безопасности
Есть ли рамки, что там может помочь либо во время компиляции/запуска анализа времени и рассказать нам о том, что следующее не поточно безопасно?
Для времени компиляции, в идеале, в Eclipse появляется подчеркнутое подчеркивание и говорит нам, что класс не является потокобезопасным?
В течение времени выполнения, любой статический анализ кода улавливает класс как не потокобезопасный?
public class LazyInitRace {
private ExpensiveObject instance = null;
public ExpensiveObject getInstance() {
if (instance == null)
instance = new ExpensiveObject();
return instance;
}
}
FindBugs имеет целую категорию «Многопоточная правильность». –
Я полагаю, что FindBugs - лучший вариант на данный момент. – portoalet