给非同步的集合加锁原理。

Java集合中提供了工具类,里面已经定义好了给集合加锁的方法。我写的这个是它的原理。
List list = new ArrayList();//非同步的。

list = MyCollections.synList(list);//返回一个同步的list.







给非同步的集合加锁。

class MyCollections{

    public static  List synList(List list){
        
        return new MyList(list);
    }

    private class MyList implements List{
    private List list;
    
    private static final Object lock = new Object();
    MyList(List list){    
        this.list = list;    
    }
    
    public boolean add(Object obj){
        synchronized(lock)
        {
            return list.add(obj);
        }
    }
    
    public boolean remove(Object obj){
        synchronized(lock)
        {
            return list.remove(obj);
        }
    }

}
}
posted @ 2014-04-14 10:52  .stone_  阅读(235)  评论(0编辑  收藏  举报