版权声明:如需转载请标明出处 https://blog.csdn.net/yj201711/article/details/85262965
在当前 jdk 下,即使我们要求集合要保证线程安全,我们也不会在去使用 vector 和 HahsTable
Collections
- synchronizedList(List<T> list)
- synchronizedMap(Map<K,V> m)
- synchronizedSet(Set<T> s)
package org.lanqiao.syn.demo;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
public class SynList {
static List<String> synList = null;
public static void main(String[] args) {
List<String> list = new ArrayList<>();
synList= Collections.synchronizedList(list);
synList.add("太");
synList.add("原");
synList.add("师");
synList.add("范");
new Thread(new Runnable() {
@Override
public void run() {
for(int i = 0 ; i < 10 ; i++) {
iterList();
}
}
}).start();
new Thread(new Runnable() {
@Override
public void run() {
for(int i = 0 ; i < 10 ; i++) {
iterList();
}
}
}).start();
}
public static synchronized void iterList() {
Iterator<String> iter = synList.iterator();
while(iter.hasNext()) {
System.out.print(iter.next());
}
System.out.println();
}
}