public Foo getFoo(){
Foo foo = null;
synchronized(fooList){
if(fooList.size() > 0){
foo = fooList.remove(0);
}
}
return foo;
}
С foo
объявлен за пределами синхронизированного блока, существует ли потенциал для возврата плохих данных?Является ли метод потокобезопасным, если возвращаемое значение объявлено/возвращено вне синхронизированного блока?
все в порядке, но пример, который вы дали, не мотивирует существование 'foo'. Просто говоря: 'return fooList.remove (0)' неприемлемо в вашем контексте? –
@MarkoTopolnik, это устаревший код. : D – user1329572