GUC-1 CopyOnWriteArrayList/CopyOnWriteArraySet

Posted surge

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GUC-1 CopyOnWriteArrayList/CopyOnWriteArraySet相关的知识,希望对你有一定的参考价值。

 

/*
 * CopyOnWriteArrayList/CopyOnWriteArraySet : “写入并复制”
 * 注意:添加操作多时,效率低,因为每次添加时都会进行复制,开销非常的大。并发迭代操作多时可以选择。
 */
public class TestCopyOnWriteArrayList {

    public static void main(String[] args) {
        HelloThread ht = new HelloThread();
        
        for (int i = 0; i < 10; i++) {
            new Thread(ht).start();
        }
    }
    
}

class HelloThread implements Runnable{
    
//    private static List<String> list = Collections.synchronizedList(new ArrayList<String>());
    
    private static CopyOnWriteArrayList<String> list = new CopyOnWriteArrayList<>();
    
    static{
        list.add("AA");
        list.add("BB");
        list.add("CC");
    }

    @Override
    public void run() {
        
        Iterator<String> it = list.iterator();
        
        while(it.hasNext()){
            System.out.println(it.next());
            
            list.add("AA");
        }
        
    }
    
}

 

以上是关于GUC-1 CopyOnWriteArrayList/CopyOnWriteArraySet的主要内容,如果未能解决你的问题,请参考以下文章

GUC-1 CopyOnWriteArrayList/CopyOnWriteArraySet

GUC-1 原子性

Java多线程:CopyOnWriteArrayList 实现原理

Java多线程:CopyOnWriteArrayList 实现原理

多线程下并发数据结构