知识大全 Java容器类的线程安全
Posted 知
篇首语:少年意气强不羁,虎胁插翼白日飞。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java容器类的线程安全相关的知识,希望对你有一定的参考价值。
Java容器类的线程安全 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
Java容器类的关系图
Collection
├List 接口
│├LinkedList 链表
│├ArrayList 顺序结构动态数组类
│└Vector 向量
│ └Stack 栈
└Set
Map
├HashTable
├HashMap
└WeakHashMap List接口
线程安全的和线程不安全的
Vector和HashMap是线程安全的
LinkedList ArrayList和HashMap是线程不安全的
由于同步需要花费时间 因此线程安全的执行效率要低于线程不安全的
在多线程操作
案例 多线程操作导致List报NoSuchElementException
java util NoSuchElementException
at java util LinkedList remove(LinkedList java: )
at java util LinkedList removeFirst(LinkedList java: )
at re RegexBuiltins getPattern(RegexBuiltins java: )
解决方法
调用Collections的同步List
List<String> items = Collections synchronizedList(new LinkedList<String>());
public void remove()
if (!items isEmpty())
return items remove( );
设置标志 同步
LinkedList<String> items = new LinkedList<String>();
String flag= abcdef ;
public void remove()
synchronized(flag)
if (!items isEmpty())
return items removeFirst();
cha138/Article/program/Java/hx/201311/27139
相关参考