java并发编程2

来源:互联网 发布:二环十三郎 知乎 编辑:程序博客网 时间:2024/05/16 09:14

1.java集合的遍历与改变同时存在的话,可能产生问题,下面的方法可以简单的防止,也就是采用客户端加锁的机制
第一种:

    public static Object getLast(Vector list){        synchronized(list){            int lastIndex = list.size() - 1;            return list.get(lastIndex);        }    }

第二种:防止抛出ArrayindexOutOfBoundsException的迭代操作

        synchronized (vector) {            for(int i = 0;i<size;i++){                //vector.get(i)            }        }

第三种:在采用foreach循环,避免抛出ConcurrentModificationException

  可以采用克隆的方式来防止