listhelpers.java

来自「java concurrency in practice 源码. JAVA」· Java 代码 · 共 41 行

JAVA
41
字号
package net.jcip.examples;import java.util.*;import net.jcip.annotations.*;/** * ListHelder * <p/> * Examples of thread-safe and non-thread-safe implementations of * put-if-absent helper methods for List * * @author Brian Goetz and Tim Peierls */@NotThreadSafeclass BadListHelper <E> {    public List<E> list = Collections.synchronizedList(new ArrayList<E>());    public synchronized boolean putIfAbsent(E x) {        boolean absent = !list.contains(x);        if (absent)            list.add(x);        return absent;    }}@ThreadSafeclass GoodListHelper <E> {    public List<E> list = Collections.synchronizedList(new ArrayList<E>());    public boolean putIfAbsent(E x) {        synchronized (list) {            boolean absent = !list.contains(x);            if (absent)                list.add(x);            return absent;        }    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?