Collections.synchronizedCollection

来源:互联网 发布:淘宝助手如何导出图片 编辑:程序博客网 时间:2024/06/09 19:18

对与集合的同步,方法之一是使用 Collections :

如以下方法:

Collections.synchronizedCollection(Collection<T> c)

返回的是一个 Collection 对象的装饰者对象 ,这个装饰者对象的所有方法都是同步的

public static <T> Collection<T> synchronizedCollection(Collection<T> c) {return new SynchronizedCollection<T>(c);    }
看下SynchronizedCollection:

它是Collections的一个静态内部类

static class SynchronizedCollection<E> implements Collection<E>, Serializable

两个重要属性:

final Collection<E> c;  // 被装饰者
final Object mutex;   //当前SynchronizedCollection 对象   作为同步锁使用


SynchronizedCollection(Collection<E> c) {            if (c==null)                throw new NullPointerException();    this.c = c;            mutex = this;        }

它的同步方法

public boolean add(E e) {    synchronized(mutex) {return c.add(e);}        }public boolean remove(Object o) {    synchronized(mutex) {return c.remove(o);}        }







 

原创粉丝点击