网站首页  汉语字词  英语词汇  考试资料  写作素材  旧版资料

请输入您要查询的范文:

 

标题 jdk5的并发库
范文
    一、传统集合
    collection:
    list:ArrayList LinkedList Vector Stack
    set:HashSet TreeSet
    Map:HashMap TreeMap
    二、简单的不再多说,只说不会的!
    1、Vector: 默认创建大小为10的Object数组(所以是基于数组实现的) add, remove方法都是添加了 synchronized关键字的 所以线程安全
    vector 扩大数组 是扩大两倍 线程安全
    ArrayList 扩大 *1.5+1 线程不安全
    2、Stack : 先进后出
    继承于Vector,所以也是线程安全的!
    push pop peek
    3
    HashSet 基于HashMap实现,使用的是hashMap中的Key, 无容量限制 ,非线程安全
    TreeSet 基于TreeMap实现, 支持排序 ,非线程安全
    4
    HashMap 基于Entry数组实现, key,value 后出entry, 无容量限制,非线程安全
    TreeMap 基于 红黑树实现,无容量限制,非线程安全
    三、各种实现方式
    ArraylIst 数组
    linkedList 双向 链表
    Vector 数组
    Stack 数组
    HashSet 基于HashMap实现
    TreeSet 基于TreeMap 实现
    HashMap 基于Entry对象的数组实现
    TreeMap 基于 红黑树实现
    四、传统集合的一些性能
    1、set 和 map 类型的查找是通过hash后,再到链表上查找,所以速度相对来说要快!
    2、当数量超过万级别:
    插入:arrayList Vector的影响比较大,其他基本没什么变化
    查找和删除;list 的性能下降比较严重,set和map基本不受影响
    五、并发集合
    以下都是线程安全的:
    ConcurrentHashMap 在每一个分段上都用锁进行保护,从而让锁的粒度更精细一些,并发性能更好,而HashMap没有锁机制,不是线程安全的。
    CopyOnWriteArrayList 在读写操作无锁的 ArrayList
    CosyOnWriteArraySet 基于CopyOnWriteArrayList实现
    ArrayBlockingQueue 基于数组,先进先出,阻塞读写
    ArrayBlockingQueue(int capacity)创建一个带有给定的(固定)容量和默认访问策略的 ArrayBlockingQueue。同时初始化锁和两个锁上的condition,一个为notEmpty 一个为notFull
    六、原子操作
    AtomicInteger AtomicLong AtomicBoolean
    七、Executors
    newCachedThreadPool()
    创建一个可根据需要创建新线程的线程池,但是在以前构造的线程可用时将重用它们。
    newFixedThreadPool(int nThreads)
    创建一个可重用固定线程数的线程池,以共享的无界队列方式来运行这些线程。
    newSingleThreadExecutor()
    创建一个使用单个 worker 线程的 Executor,以无界队列方式来运行该线程。
    newScheduledThreadPool(int corePoolSize)
    创建一个线程池,它可安排在给定延迟后运行命令或者定期地执行。
    适合于:定时或者延迟的任务,在异步操作中需要 超时回调的场景
随便看

 

在线学习网范文大全提供好词好句、学习总结、工作总结、演讲稿等写作素材及范文模板,是学习及工作的有利工具。

 

Copyright © 2002-2024 cuapp.net All Rights Reserved
更新时间:2025/5/19 23:23:14