JAVA并行框架(Fork/Join)和并发工具类

Fork/Join:JAVA的并行框架,一个大任务划分成多个小任务(个人理解相当于分治的思想),其执行的类要实现ForkJoinTask接口下的实现类(RecursiveTask<V>/RecursiveAction),在执行该类的时候需要使用ForkJoinPool来执行,其中的invoke方法是同步方法,execute是异步方法,调用task的join()获取到结果。其使用UNSAFE类来完成线程安全

CountDownLatch:很多说法就是相当于发令枪,当初始化的时候传入一个int的参数。该参数变为0的时候才是执行await()方法后面的代码,当执行一次countDown方法就会减去一次。该类的底层实现是内部类,该类继承了AQS来实现的线程安全

CyclicBarrier:一个可循环使用的功能类似于CountDownLatch的屏障,该类会让所有的线程都执行到屏障的时候才会一起放行所有的线程,其使用了可重入锁来实现的线程同步。该类有一个构造方法可以传入一个Runnable,该类会在所有的线程都执行完毕的时候被执行

Semaphore:一个信号量。控制某一资源被多少的线程同时拿到,其使用继承AQS的内部类完成线程安全

Exchanger:两个线程之间的数据交换,使用CAS来实现线程安全,exchange后要将返回的值覆盖旧的值。不然不会改变值

如有错误。请大家多多指正


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值