Пишу сервер на NIO2. Для каждого подключившегося клиента создается объект, который обрабатывает его события. Хочется все логировать и при этом в лог писать некий уникальный идентификатор, скажем, аналог адреса объекта. В Java есть что-то встроенное или писать свой инкрементный счетчик?
можно не использовать синхронизацию, ведь есть AtomicInteger
public class Client {
private static AtomicInteger at = new AtomicInteger(0);
public int getNext(){
return at.incrementAndGet();
}
}
Сделал так
public class Client {
private static int counter = 0;
private synchronized static int nextCounter() {
return counter++;
}
public final int index = nextCounter();
.............
}
Есть несколько вариантов, что использовать в качестве идентификатора:
hashCode(). Использовать только с имутабельными объектами либо с теми, где значение функции не зависит от изменяемого состоянияnew Random().nextLong()UUID.randomUUID().toString()Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости