一、使用Fork/Join的步骤
1、创建用来执行任务的ForkJoinPool对象
2、创建即将在线程池中被执行的任务ForkJoinTask子类/或者ForkJoinAction子类
3、实现上述子类的compute方法,对任务的分解
4、调用ForkJoinPool对象的execute()方法执行任务
二、方法说明
1、Fork/Join---invokeAll()方法用来执行一个主任务所创建的子任务。这是一个同步调用。这个任务将等待子任务完成,然后继续执行或者结束
2、当一个主任务等待它的子任务时,执行这个主任务的工作者线程接收另一个等待执行的任务并开始执行,这就是Fork/Join框架比Runnable和Callable对象更加高效的原因
3、执行器框架的invokeAll()方法,必须将任务发送给执行器,Fork/Join中,任务的控制是在线程池中进行的
4、invoke()方法:这个方法是同步调用的,必须等到传进来的任务执行完毕才会返回
5、execute()方法:这个方法是异步调用的
三、模拟对商品价格的修改
package com.currency.forkandjoin; /** * 产品类&#x