fork join遍历树形结构数据

public class TreeTaskextends RecursiveTask {

private StringactivityCode;

private ActivityMapperactivityMapper = SpringContextHolder.getBean(ActivityMapper.class);

public TreeTask(String activityCode) {

this.activityCode = activityCode;

}

@Override

    protected List compute() {

List result = Lists.newArrayList();

List ruleActivityList =activityMapper.querySonActivity(activityCode);

List> forks = Lists.newArrayListWithExpectedSize(ruleActivityList.size());

for(Activity activity:ruleActivityList){

result.add(activity);

TreeTask treeTask =new TreeTask(activity.getActivityCode());

forks.add(treeTask);

treeTask.fork();

}

for( RecursiveTask tasks:invokeAll(forks)){

result.addAll(tasks.join());

}

return result;

}

public static void main(String[] args) {

String  activityCode ="";

TreeTask treeTask =new TreeTask(activityCode);

ForkJoinPool forkJoinPool =new ForkJoinPool();

List  activities = forkJoinPool.invoke(treeTask);

}

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容