Fork/Join框架基本元素包括创建用来执行任务的ForkJoinPool对象,创建即将在线程池中被执行的任务ForkJoinTask子类。我们将以同步的方式执行任务。当一个主任务执行两个或更多的子任务时,这个主任务将等待子任务的完成,用这种方法,执行主任务的线程,称之为工作者线程,它将寻找其他的子任务来执行,并在子任务执行的时间里利用所有的线程优势。
首先这个例子运用了设计模式,这个设计模式是原型模式,利用原生native的clone方法创建对象,可以避免对象创建销毁带来的性能问题,首先创建了50个Product对象,然后使用ForkJoinPool执行继承了RecursiveAction类的对象,会自动调用这个类的compute方法,这个compute方法逻辑很简单,就是产品个数大于10个就分为子任务去执行,当产品个数小于10时,就直接更新产品的价格。