美文网首页
Vector与ArrayList,HashMap与HashTab

Vector与ArrayList,HashMap与HashTab

作者: 健倾心语 | 来源:发表于2018-11-20 22:37 被阅读6次

开发中哪些地方遇到线程安全的:

  • 集合有些是线程安全的有些是线程不安全的。

Vector与ArrayList

区别:线程安全

  • 查看源码,我们就可以看到,Vector 中的add方法加了synchronized修饰,实现了线程同步,所以是线程安全的,而ArrayList的add方法没有加synchronized修饰,所以是线程不安全的。所以在多线程共享Vector 集合做add操作的时候,效率不高。而ArrayList反而效率会更高。

HashMap与HashTable

区别:线程安全

  • HashTable是线程安全的
  • HashMap是线程不安全的
  • 实现原理:链表+数组 put方法+hashcode取模
  • put方法:HashTable加了synchronized修饰;HashMap的没有加synchronized修饰,没有实现同步
  • get方法:HashTable加了synchronized修饰,保证线程安全。但是查询效率不高。HashMap的没有加synchronized修饰,没有实现同步,所以效率不较高。

相关文章

网友评论

      本文标题:Vector与ArrayList,HashMap与HashTab

      本文链接:https://www.haomeiwen.com/subject/pwdfqqtx.html