JAVA集合の同時
1361 ワード
l従来の集合クラスの同時アクセス時の問題説明、添付ファイルを参照
l従来の方法では、Collectionsツールクラスが提供するsynchronizedCollection法を用いて同期セットを取得し、この方法の実装ソースコードを分析する.
l従来方式のCollectionでは,集合を反復する際に集合を修正することは許されない.
Ø空中ネット面接の同期レベルスレッド問題でプレゼンテーションを行う
ØAbstractListのcheckForComodificationメソッドのソースコードに基づき、ConcurrentModificationException異常の原因を分析する.
lJava 5には、次の同期セットクラスがあります.
Øjavaを見ることによって.util.concurrentパッケージの説明では、どのような同時集合があるかを知ることができます.
ØConcurrentHashMap
ØCopyOnWriteArrayList
ØCopyOnWriteArraySe
t
l従来の方法では、Collectionsツールクラスが提供するsynchronizedCollection法を用いて同期セットを取得し、この方法の実装ソースコードを分析する.
l従来方式のCollectionでは,集合を反復する際に集合を修正することは許されない.
Ø空中ネット面接の同期レベルスレッド問題でプレゼンテーションを行う
ØAbstractListのcheckForComodificationメソッドのソースコードに基づき、ConcurrentModificationException異常の原因を分析する.
lJava 5には、次の同期セットクラスがあります.
Øjavaを見ることによって.util.concurrentパッケージの説明では、どのような同時集合があるかを知ることができます.
ØConcurrentHashMap
ØCopyOnWriteArrayList
ØCopyOnWriteArraySe
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.concurrent.CopyOnWriteArrayList;
public class CollectionModifyExceptionTest {
public static void main(String[] args) {
Collection users = new CopyOnWriteArrayList();
//new ArrayList();
users.add(new User(" ",28));
users.add(new User(" ",25));
users.add(new User(" ",31));
Iterator itrUsers = users.iterator();
while(itrUsers.hasNext()){
System.out.println("aaaa");
User user = (User)itrUsers.next();
if(" ".equals(user.getName())){
users.remove(user);
//itrUsers.remove();
} else {
System.out.println(user);
}
}
String a = new String("a");
String b = new String("a");
System.out.println(a == b);
}
}
t