2 года назад
Java 1094. Напишите минимальный неблокирующий стек (всего два метода — push() и pop()).
Неблокирующие структуры данных в Java могут быть реализованы с использованием атомарных операций и циклов CAS (Compare-and-Swap). Вот пример минимальной реализации неблокирующего стека с методами push() и pop(): import java.util.concurrent.atomic.AtomicReference; public class NonBlockingStack<T> { private static class Node<T> { final T value; Node<T> next; Node(T value) { this.value = value; } } private final AtomicReference<Node<T>> top...
2 года назад
Java 1095. Напишите минимальный неблокирующий стек (всего два метода — push() и pop()) с использованием Semaphore.
Неблокирующие структуры данных, такие как стек, обычно не используют семафоры для своей реализации, поскольку семафоры могут блокировать потоки, что противоречит идеологии неблокирующих алгоритмов. Однако я могу предложить вам реализацию неблокирующего стека без использования семафоров. Вот пример минимальной реализации неблокирующего стека с методами push() и pop() на основе атомарных операций CAS (Compare-and-Swap): import java.util.concurrent.atomic.AtomicReference; public class NonBlockingStack<T>...