ForkJoinTask是jdk1.7整合Fork/Join,即拆分fork合并join,性能上有大大提升。
思想:充分利用多核CPU把计算拆分成多个子任务,并行计算,提高CPU利用率大大减少运算时间。有点像,MapReduce思路感觉大致一样。
jdk7中已经提供了最简洁的接口,让你不需要太多时间关心并行时线程的通信,死锁问题,线程同步,下面是它提供的接口:
RecursiveAction 无返回任务。forkjoinpool
RecursiveTask有返回类型。
ForkJoinPool提供了一系列的submit方法,计算任务。ForkJoinPool默认的线程数通过Runtime.availableProcessors()获得,因为在计算密集型的任务中,获得多于处理性核心数的线程并不能获得更多性能提升,该方法也可以传以前的Runnable, Callback的接口实现(底层会将其封装成ForkJoinTask对象)。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pienmashup.com/a/jisuanjixue/article-40526-1.html
美国本世纪是中国人的最大敌人啊
离开制造业这个国民经济的基石