ForkJoin框架使用逻辑

public class ForkJoinLogic extends RecursiveTask<Integer> {
    private int interval;
    private int start;
    private int end;
    private String tableName;
    //实现业务逻辑的成员变量

    public ForkJoinLogic(int interval, int start, int end, String tableName) {
        this.interval = interval;
        this.start = start;
        this.end = end;
        this.tableName = tableName;
    }

    @Override
    protected Integer compute() {
        //flag是指间隔小于某个值
        boolean flag = false;
        if (flag) {
            /**
             * 分页逻辑
             * select * from tableName where ...>0 and ...<...
             *处理的业务逻辑,插入目标数据库
             */
            return 1;
        } else {
            /**
             * 对ResultSet进行fork
             *
             */
            return 1;
        }
    }
}
时间: 2024-10-18 21:35:01

ForkJoin框架使用逻辑的相关文章

Java并发包线程池之ForkJoinPool即ForkJoin框架(一)

前言 这是Java并发包提供的最后一个线程池实现,也是最复杂的一个线程池.针对这一部分的代码太复杂,由于目前理解有限,只做简单介绍.通常大家说的Fork/Join框架其实就是指由ForkJoinPool作为线程池.ForkJoinTask(通常实现其三个抽象子类)为任务.ForkJoinWorkerThread作为执行任务的具体线程实体这三者构成的任务调度机制.通俗的说,ForkJoin框架的作用主要是为了实现将大型复杂任务进行递归的分解,直到任务足够小才直接执行,从而递归的返回各个足够小的任务

JSBinding+Bridge.Net:框架与逻辑的关系

在JSB+Bridge工程中你可以同时维护Cs版本和Js版本的游戏. 框架代码:简称framework,表示那些不进行热更的代码 逻辑代码:简称logic,表示那些可进行热更的代码 在Cs工程中,将代码明确划分为框架和逻辑.框架代码放在 Assets/Scripts/GameFramework,逻辑代码放在 Assets/Scripts/GameLogic.游戏运行过程中,框架代码跑的是C#,逻辑代码跑的也是C#. 在Js工程中,框架代码也是在 Assets/Scripts/GameFramew

Java ForkJoin 框架初探

多核时代,编程语言如果不支持多核编程就OUT了,Java为了迎头赶上,在Java 8 版本增加大量支持多核编程的类库,如Stream等,Java 7开始支持的ForkJoin框架也是为了更好的支持多核编程. 设计思想:化整为零再化零为整,另外还要加上一种团队精神,即能者多劳.化整为零(split up)就是把一个复杂的任务分为许多足够小的任务计算:化零为整(merge)就是把小任务的计算结果不断往上合并值到得出最终结果:团队精神:ForkJoin使用了Work-Stealing算法,即先完成任务

ForkJoin框架

1. 什么是Fork/Join框架 Fork/Join框架是Java7提供了的一个用于并行执行任务的框架, 是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架. 我们再通过Fork和Join这两个单词来理解下Fork/Join框架,Fork就是把一个大任务切分为若干子任务并行的执行,Join就是合并这些子任务的执行结果,最后得到这个大任务的结果.比如计算1+2+..+10000,可以分割成10个子任务,每个子任务分别对1000个数进行求和,最终汇总这10个子任务的结果

Java7 Fork-Join 框架:任务切分,并行处理

概要 现代的计算机已经向多CPU方向发展,即使是普通的PC,甚至现在的智能手机.多核处理器已被广泛应用.在未来,处理器的核心数将会发展的越来越多.虽然硬件上的多核CPU已经十分成熟,但是很多应用程序并未这种多核CPU做好准备,因此并不能很好地利用多核CPU的性能优势.为了充分利用多CPU.多核CPU的性能优势,级软基软件系统应该可以充分“挖掘”每个CPU的计算能力,决不能让某个CPU处于“空闲”状态.为此,可以考虑把一个任务拆分成多个“小任务”,把多个"小任务"放到多个处理器核心上并行

遵循统一的机器学习框架理解逻辑回归

遵循统一的机器学习框架理解逻辑回归 标签: 机器学习 LR 分类 一.前言 我的博客不是科普性质的博客,仅记录我的观点和思考过程.欢迎大家指出我思考的盲点,更希望大家能有自己的理解. 本文参考了网络上诸多资料. 二.理解 统一的机器学习框架(MLA): 1.模型(Model) 2.策略(Loss) 3.算法(Algorithm) 按照如上所说框架,LR最核心的就是损失函数使用了 Sigmoid 和 Cross Entropy . LR: Sigmoid + Cross Entropy Model

Java-JUC之ForkJoin框架

一. 主要算法思想: 采用了分治的思想:将一个大任务分割成不同的子任务,将线程放入不同的队列,一个线程对应一个队列. 1."工作窃取算法":某个线程执行完自己的队列里的任务时,会从其他队列里窃取任务来执行 2. 框架局限性: 存在竞争:双端队列里只有一个任务时 二. 应用 1.  java8 中的parallel stream  因为最近项目中一个计算量很大的任务中使用了parallel stream去并行地计算机器学习模型,最近找系统耗时瓶颈,发现这一块可能存在问题,于是打算深入研究

JAVA并行框架学习之ForkJoin

当硬件处理能力不能按照摩尔定律垂直发展的时候,选择了水平发展,多核处理器已经广泛应用.未来随着技术的进一步发展,可能出现成百上千个处理核心,但现有的程序运行在多核心处理器上并不能得到较大性能的提升,主要的瓶颈在于程序本身的并发处理能力不强,不能够合理的利用多核心资源. 现有的处理方案是从软件入手,试图采用多线程,是程序在同一时间支持多个任务的计算,这种多线程的处理方案在处理器数目较少的情况下可以较为明显的提高应用性能,但我们更加青睐于由硬件实现的多线程处理模式,但这一领域至今没有很好的结果. F

并行编程框架 ForkJoin

本文假设您已经了解一般并行编程知识,了解Java concurrent部分如ExecutorService等相关内容. 虽说是Java的ForkJoin并行框架,但不要太在意Java,其中的思想在其它语言环境也是同样适用的.因为并发编程在本质上是一样的.就好像如何找到优秀的Ruby程序员?其实要找的只是一个优秀的程序员.当然,如果语言层面直接支持相关的语义会更好. 引言 Java 语言从一开始就支持线程和并发性语义.Java5增加的并发工具又解决了一般应用程序的并发需求,Java6.Java7又