首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

一个貌似线程安全的示例

2012-12-20 
一个看似线程安全的示例在《java并发编程实战》第四章4.4.1节给出了一个程序示例:?static class Synchronize

一个看似线程安全的示例

在《java并发编程实战》第四章4.4.1节给出了一个程序示例:

?

static class SynchronizedCollection<E> implements Collection<E>, Serializable {// use serialVersionUID from JDK 1.2.2 for interoperabilityprivate static final long serialVersionUID = 3053995032091335093L;final Collection<E> c;  // Backing Collectionfinal Object mutex;     // Object on which to synchronizeSynchronizedCollection(Collection<E> c) {            if (c==null)                throw new NullPointerException();    this.c = c;            mutex = this;        }SynchronizedCollection(Collection<E> c, Object mutex) {    this.c = c;            this.mutex = mutex;        }}

?可以看到mutex就是当前的SynchronizedCollection对象,而SynchronizedRandomAccessList继承自SynchronizedList,SynchronizedList又继承自SynchronizedCollection,所以SynchronizedRandomAccessList中的mutex也就是SynchronizedRandomAccessList的this对象。所以在GoodListHelper中使用的锁list对象,和SynchronizedRandomAccessList内部的锁是一致的,所以它可以实现线程安全性。

?

?

热点排行