知识大全 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

相关参考