import java.util.concurrent.atomic.AtomicReference;
public class Stack
AtomicReference
public Stack()
{
atomicHead = new AtomicReference
}
public void push(T item)
{
Node
Node
do
{
currentHead = atomicHead.get();
newHead = new Node
}
while(!atomicHead.compareAndSet(currentHead, newHead));
}
public T pop()
{
Node
Node
do
{
currentHead = atomicHead.get();
if (currentHead == null) return null;
newHead = currentHead.next;
}
while(!atomicHead.compareAndSet(currentHead, newHead));
return currentHead.item;
}
}
No comments:
Post a Comment