TGViewer
Java Java @java_sup · 1.49K subscribers
Post #333 1.08K
Напишите потокобезопасную реализацию класса с неблокирующим методом BigInteger next(), который возвращает элементы последовательности: [1, 2, 4, 8, 16, ...].

class PowerOfTwo {
private AtomicReference<BigInteger> current = new AtomicReference<>(null);

BigInteger next() {
BigInteger recent, next;
do {
recent = current.get();
next = (recent == null) ? BigInteger.valueOf(1) : recent.shiftLeft(1);
} while (!current.compareAndSet(recent, next));
return next;
}
}
More from @java_sup
  1. Apr 12, 2026В эпоху искусственного интеллекта Java актуальна как никогда Мощный, масштабируемый, надеж…
  2. Aug 6, 2025Объектно-ориентированные шаблоны проектирования на Java https://www.freecodecamp.org/news/…
  3. Aug 1, 2025Подробный обзор Spring Boot | Как он упрощает приложения Java и микросервисы https://www.y…
  4. Aug 1, 2025Практическое руководство по RecordBuilder на Java https://www.baeldung.com/java-recordbuil…
  5. Aug 1, 2025Переосмысление чистого кода Чистый код — это не выбор стиля, а образ мышления. В этой стат…
  6. Jun 12, 2025В этом уроке мы рассмотрим, как авторизовать запросы для определенных URL-адресов и методо…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →