AtomicBoolean в однопоточной среде
У меня такой вопрос, является ли использование AtomicBoolean
в однопоточном приложении плохой практикой? Я использовал его из-за удобных и читаемых методов.
У меня в методе вычитываются данные из таблицы пакетами, коллекция кладется в функцию, которая передается далее на insert. Результат insert это тоже boolean, таких insert может быть десятки, все результаты я суммирую с AtomicBoolean result
public boolean readAllInBatch(Function<List<AccDivTypeRBC>, Boolean> function) {
AtomicBoolean result = new AtomicBoolean(true);
try {
List<AccDivTypeRBC> accDivTypeRBCS = new ArrayList<>();
dsfJdbcTemplate.query(SQL_READ, resultSet -> {
accDivTypeRBCS.add(AccDivTypeRBC.builder()
.id(resultSet.getLong(1))
.name(resultSet.getString(2))
.build());
if (accDivTypeRBCS.size() == batchSize) {
result.set(result.get() && function.apply(accDivTypeRBCS));
accDivTypeRBCS.clear();
}
if (resultSet.isLast()) {
result.set(result.get() && function.apply(accDivTypeRBCS));
}
});
} catch (Exception e) {
log.error(e);
return false;
}
return result.get();
}