import java.util.concurrent.atomic.AtomicReference;
import java.util.EmptyStackException;
class NonBlockingStack {
private AtomicReference head = new AtomicReference(null);
public void push(int data) {
for (; ;) {
Node next = (Node) head.get();
Node myNode = new Node(data, next);
if (head.compareAndSet(next, myNode)) {
return;
}
}
}
Показаны сообщения с ярлыком лекция #2. Показать все сообщения
Показаны сообщения с ярлыком лекция #2. Показать все сообщения
воскресенье, 27 сентября 2009 г.
лекция #2: NonBlockingStack
Реализация неблокирующего стека на java.util.concurrent.atomic.AtomicReference:
Ярлыки:
лекция,
лекция #2,
NonBlockingStack,
Stack
пятница, 25 сентября 2009 г.
лекция #2: словарь
На лекции #2 пополнили словарь:
- conditional waiting
- Producer-Consumer pattern
- Push or Pop model
- Bounding Buffer
- atomic variables (java.util.concurrent.atomic.*)
- CAS: compareAndSwap
- non-blocking algorithms
- conditional waiting
- Producer-Consumer pattern
- Push or Pop model
- Bounding Buffer
- atomic variables (java.util.concurrent.atomic.*)
- CAS: compareAndSwap
- non-blocking algorithms
Подписаться на:
Сообщения (Atom)