JAVA 并发类(一) 常用的并发类

1. 集合类

  • ConcurrentHashMap:线程安全的HashMap的实现

  • CopyOnWriteArrayList:线程安全且在读操作时无锁的ArrayList

  • CopyOnWriteArraySet:基于CopyOnWriteArrayList 不添加重复元素

  • ArrayBlockingQueue:基于数组 先进先出 线程安全 可实现指定时间的拥塞读写

  • LinkedBlockingQueue:基于链表实现 读写各用一把锁 在高并发读写操作都多的情况下使用 性能优于ArrayBlockingQueue

2. 原子类

  • AtomicInteger:线程安全的Intege,基于CAS实现(无阻塞,CPU原语) 优于使用同步锁的Integer

3.线程池

  • ThreadPoolExecutor:一个高效的支持并发的线程池,可以很容易的讲一个实现了Runnable接口的任务放入线程池执行,但要用好这个线程池,必须合理配置corePoolSize、最大线程数、任务缓冲队列,以及队列满了+线程池满时的回绝策略,一般而言对于这些参数的配置,需考虑两类需求:高性能和缓冲执行。

  • Executor:提供一些方便创建ThreadPoolExecutor的方法

  • FutureTask:用于异步获取执行结果或者取消执行任务的场景 基于CAS 避免锁的引用

4.锁

  • ReentrantLock:与synchronized效果一致,但是又更加灵活,支持公平/非公平锁、支持可中断的锁、支持非阻塞的tryLock(可超时)、支持锁条件等,需要手工释放锁,基于AbstractQueueSynchronizer

  • ReentrantReadWriteLock:与ReentrantLock没有关系,采用两把锁,用于读多写少的情形

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值