Java高并发包简单笔记

Java高并发记录

 

 

 

  1. 高并发线程池

 

高并发线程池有如下:

  1. newCacheedThreadPool 无界限线程池,存放个数Integer.MAX_VALUE

可进行线程自动回收,可实现线程工厂

  1. newFixedThreadPool  有界线程池,可指定最大数量,可定制线程工厂
  2. newSingleThreadEcecutor 创建单一线程池,单一线程池可以实现队列的

方式执行任务

  1. 高并发工具包
  1. Semaphore 主要作用:限制并发执行的线程个数,他可以等待获得许可的同时可以加入等待时间,还有尝试是否可以持有锁等功能
  2. Exchanger 是线程之间传输数据的方式之一(适用于两个线程之间交互)并且在传输类型上没有限制
  3. CountDownLatch 可以实现两种角色的线程等待对方的效果
  4. CyclicBarrier 可以使同类线程等待达到同步的效果,使两个类可以更加完善的实现线程对象之间的同步性,对线程的轨迹控制更加方便
  5. Phaser 提供了动态增减parties计数,这点比CyclicBarrier 操作更加方便,可以实现某一线程取消同步运行的效果,而且支持在指定屏障处等待,等待过程中还支持中断和非中断功能
  1. 获取线程返回结果

方法一:future 和 Callable

优点: 从线程中返回数据以便后期处理

缺点:   阻塞性

方法二:CompletionService

优点: 避免Futrure线程阻塞的特点,哪个线程先执行完,先处理哪个线程返回的数据

  1. 计划任务
  1. ScheduledThreadPoolExecutor计划任务执行池对象,使用此类可以高效的实现计划线程池,不再重复创建thread对象
  1. Fork-join分治编程
  2. 常用线程安全Collection
  1.  ConcurrentHashMap
  2.  ConcurrentSkipListMap
  3.  ConcurrentSkipListSet
  4.  ConcurrentLinkedQueue
  5.  CobcurrentLinkedDeque
  6.  CopyOnWriteArrayList
  7.  CopyOnWriteArraySet
  1. 常用线程安全队列
  1.  ArrayBlockingqueue
  2. PriorityBlockingQueue
  3. LinkedBlockingQueue
  4. LinkedBlockingQueue

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值