CopyOnWriteArrayList使用示例

来源:互联网 发布:手机怎么删除淘宝地址 编辑:程序博客网 时间:2024/05/13 21:57
package com.expgiga.JUC;import java.util.Iterator;import java.util.concurrent.CopyOnWriteArrayList;/** * 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");        }    }}