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

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);
        }
    }

}
}
原文地址:https://www.cnblogs.com/stonewu/p/3663530.html