Treiber stack
来源:互联网 发布:微艾薇h5建站 编辑:程序博客网 时间:2024/06/05 19:27
import java.util.concurrent.atomic.AtomicReference;/** * 使用Treiber算法 Treiber算法主要用于实现Stack,基于Treiber算法实现的无阻塞的Stack * * @author feng * * @param<E> */public class CurrentStack<E> {AtomicReference<Node<E>> head =new AtomicReference<Node<E>>();/*** push stack* @param item*/public void push(E item) {Node<E> newHead =new Node<E>(item);Node<E> oldHead;do {oldHead =head.get();newHead.next =oldHead;} while (!head.compareAndSet(oldHead,newHead));}/*** pop stack* @param item*/public E poll(){Node<E> oldHead;Node<E> newHead;do {oldHead =head.get();newHead =oldHead.next;} while (!head.compareAndSet(oldHead,newHead));returnoldHead.item;}static class Node<E> {final Eitem;Node<E> next;public Node(Eitem) {this.item =item;}}}
0 0
- Treiber stack
- Treiber Stack
- Treiber算法实现Stack
- stack
- stack
- stack
- stack
- Stack
- Stack
- Stack
- Stack
- stack
- Stack
- stack
- stack
- Stack
- stack
- Stack
- [Android]: 2D硬件加速Copybit模块
- zookeeper Curator 监听
- LeetCode:Remove Duplicates from Sorted List I & II
- C++面试题目自己总结看
- 【airflow实战系列】 基于 python 的调度和监控工作流的平台
- Treiber stack
- swift开发常用库
- 剑指offer-反转链表
- Spring学习笔记(二)
- swift开发常用技巧
- 推荐YAML教程
- ByteBuffer 使用与理解
- python下读取xls文件与csv文件
- 我的世界史蒂夫---熊孩子版