Skip to content

Instantly share code, notes, and snippets.

View liuzhengyang's full-sized avatar
🎉
bytejava

刘正阳 | bytejava.cn liuzhengyang

🎉
bytejava
View GitHub Profile
/**
* Description: Concurrent Stack
*
* @author liuzhengyang
* @version 1.0
* @since 2016-04-07
*/
public class ConcurrentStack<E> {
private AtomicReference<Node<E>> top = new AtomicReference<>();
interface Computable<A, V> {
V compute(A a);
}
public class Memorizer<A, V> implements Computable<A, V> {
private final ConcurrentMap<A, Future<V>> cache = new ConcurrentHashMap<>();
private final Computable<A, V> computable;
public Memorizer(Computable<A, V> computable) {
this.computable = computable;