有两种同步方法:
1) 将 ArrayList 与 Collections.synchronizedList()同步
这里需要注意的重要一点是,迭代器必须位于同步块内,如下例所示:
importjava.util.ArrayList;运行时:
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
public class ArrayListSynchronized{
public static void main(String[] args) {
// 创建 ArrayList<字符串>synchronized
列表<字符串>slist = Collections.synchronizedList(新 ArrayList<字符串>());
//添加项到 ArrayList
slist.add(1”);
slist.add(5”);
slist.add(2”);
slist.add(7”);
System.out.println(浏览同步列表:”);
synchronized(slist) {
迭代器<字符串>迭代器 = slist.iterator();
while (iterator.hasNext())
System.out.println(iterator.next());
}
}
}
browse synchronized list:
1
5
2
7
2) 使用 CopyOnWriteArrayList
导入 java.util.Iterator;run:
public class CopyOnWriteArrayList{
public static void main(String[] args) {
java.util.concurrent.CopyOnWriteArrayList<字符串>al =
new java.util.concurrent.CopyOnWriteArrayList<字符串>();
//在 ArrayList
al.add(notebook”);
al.add(套件”);
al.add(U盘”);
al.add(计算器”);
System.out.println(浏览同步列表:”);
迭代器<字符串>迭代器 = al.iterator();
while (iterator.hasNext())
System.out.println(iterator.next());
}
}
browse synchronized list:
notebook
kit
U盘
calculator
Commentaires (12)
Connectez-vous pour commenter
Rejoignez la discussion et partagez vos connaissances avec la communauté
Excellent tutoriel !
N'hésitez pas si vous avez des questions.