美文网首页
线程安全,并发包

线程安全,并发包

作者: HJJ_3c00 | 来源:发表于2018-06-15 14:27 被阅读0次

容器类

Vector与ArrayList区别

1.ArrayList是最常用的List实现类,内部是通过数组实现的,它允许对元素进行快速随机访问。数组的缺点是每个元素之间不能有间隔,当数组大小不满足时需要增加存储能力,就要讲已经有数组的数据复制到新的存储空间中。当从ArrayList的中间位置插入或者删除元素时,需要对数组进行复制、移动、代价比较高。因此,它适合随机查找和遍历,不适合插入和删除。

2.Vector与ArrayList一样,也是通过数组实现的,不同的是它支持线程的同步,即某一时刻只有一个线程能够写Vector,避免多线程同时写而引起的不一致性,但实现同步需要很高的花费,因此,访问它比访问ArrayList慢

注意: Vector线程安全、ArrayList不安全

HashMap与HashTable

1.HashMap不是线程安全的 

HastMap是一个接口 是map接口的子接口,是将键映射到值的对象,其中键和值都是对象,并且不能包含重复键,但可以包含重复值。HashMap允许null key和null

value,而hashtable不允许。

2.HashTable是线程安全的一个Collection。

3.HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。

HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。

HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。

注意: HashTable线程安全,HashMap线程不安全。

相关文章

  • juc包

    java.util.concurrent,并发包 CopyOnWriteArrayList是线程安全的。 java...

  • 线程安全,并发包

    容器类 Vector与ArrayList区别 1.ArrayList是最常用的List实现类,内部是通过数组实现的...

  • 线程安全的List:CopyOnWriteArrayList

    线程安全的List:CopyOnWriteArrayList 并发包中的并发List只有CopyOnWriteAr...

  • JUC之并发List源码剖析

    1.1 介绍 并发包中的并发List只有CopyOnWriteArrayList,它是一个线程安全的ArrayLi...

  • 常用面试题目

    java基础:1.JVM内存模型2.juc并发包线程池,容器,线程安全3.static,final作用域、作用4....

  • java线程池

    线程池能够帮助我们提高系统资源利用效率,并简化线程管理。通过并发包下的Executors(不是Executor)可...

  • ConcurrentHashMap 1.7

    概述 ConcurrentHashMap 是Java并发包中提供的一个线程安全且高效的HashMap实现,Conc...

  • CopyOnWriteArrayList源码学习笔记

    CopyOnWriteArrayList是JUC并发包下的一个线程安全List。对于类的作用,注释是这么写的 A ...

  • CopyOnWriteArrayList源码解析

    Java并发包提供了很多线程安全的集合,有了他们的存在,使得我们在多线程开发下,可以和单线程一样去编写代码,大大简...

  • CopyOnWriteArrayList源码解析

    Java并发包提供了很多线程安全的集合,有了他们的存在,使得我们在多线程开发下,可以和单线程一样去编写代码,大大简...

网友评论

      本文标题:线程安全,并发包

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