將非同步集合轉換為同步集合
阿新 • • 發佈:2018-12-10
工具類方法
static
|
返回指定列表支援的同步(執行緒安全的)列表。 |
|
static
|
返回由指定對映支援的同步(執行緒安全的)對映。 |
|
static
|
返回指定 set 支援的同步(執行緒安全的)set。 |
實現原理
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); } } } }