`
Franciswmf
  • 浏览: 802996 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

fork、join

 
阅读更多
一、processdefinition.xml文件
<?xml version="1.0" encoding="UTF-8"?>

<process-definition  xmlns="urn:jbpm.org:jpdl-3.2"  name="forkjointest">


<start-state name="start-state1">
<transition to="fork1"></transition>
</start-state>


<fork name="fork1">
<script>
<variable name="transNames" access="write"></variable>
<expression>
transNames=new ArrayList();
if(param>100){
    transNames.add("to node1");
    transNames.add("to node2");
}else{
transNames.add("to node3");
transNames.add("to node4");
}
</expression>
</script>
<transition to="node1" name="to node1"></transition>
<transition to="node2" name="to node2"></transition>
<transition to="node3" name="to node3"></transition>
<transition to="node4" name="to node4"></transition>
</fork>



<node name="node1">
<event type="node-enter">
<script >
print(&quot;经过node1…………………………&quot;);
</script>
</event>
<transition to="join1"></transition>
</node>

<node name="node2">
<event type="node-enter">
<script >
print(&quot;经过node2…………………………&quot;);
</script>
<script></script>
<script></script>
<script></script>
</event>
<transition to="join1"></transition>
</node>

<node name="node3">
<event type="node-enter">
<script>
print(&quot;经过node3…………………………&quot;);
</script>
</event>
<transition to="join1"></transition>
</node>

<node name="node4">
<event type="node-enter">
<script>
print(&quot;经过node4…………………………&quot;);
</script>
</event>
<transition to="join1"></transition>
</node>
<join name="join1">
<transition to="end-state1"></transition>
</join>

<end-state name="end-state1"></end-state>


</process-definition>
二、流程发布以后的测试类
package cn.oa.jbpm.test;

import org.jbpm.JbpmConfiguration;
import org.jbpm.JbpmContext;
import org.jbpm.graph.def.ProcessDefinition;
import org.jbpm.graph.exe.ProcessInstance;
import org.jbpm.graph.exe.Token;

public class ForkJoinTest {
//fork 和join节点
public static void main(String[] args) {
JbpmContext jbpmContext=JbpmConfiguration.getInstance().createJbpmContext();
try {
ProcessDefinition processDefinition=jbpmContext.getGraphSession().findLatestProcessDefinition("forkjointest");
ProcessInstance pi=processDefinition.createProcessInstance();
pi.getContextInstance().setVariable("param", 55);
Token token=pi.getRootToken();
token.signal();
System.out.println("*************"+token.getNode().getName());

} finally {
jbpmContext.close();
}
}
}
分享到:
评论

相关推荐

    eclipse-collections-forkjoin-7.1.2-API文档-中文版.zip

    赠送jar包:eclipse-collections-forkjoin-7.1.2.jar; 赠送原API文档:eclipse-collections-forkjoin-7.1.2-javadoc.jar; 赠送源代码:eclipse-collections-forkjoin-7.1.2-sources.jar; 赠送Maven依赖信息文件:...

    ForkJoin并发框架入门示例

    ForkJoin并发框架是Java 7引入的一种高效并行计算框架,它基于分而治之(Divide and Conquer)的策略,适用于处理大量可分割的任务。这个框架的核心类是`ForkJoinPool`和`ForkJoinTask`,它们为开发者提供了创建和...

    基于JDK的ForkJoin构建一个简单易用的并发组件1

    【标题】:基于JDK的ForkJoin构建一个简单易用的并发组件1 【描述】:在实际的IT项目中,并发编程是提高效率的关键技术之一。一个典型的并发应用场景是商品详情页面的展示,该页面包含商品基本信息、销量、地址、...

    Stream流式计算、ForkJoin和异步回调.md

    下面是一个简单的ForkJoin框架的应用示例,该示例展示了如何使用ForkJoin框架来计算一组数字的总和: ```java public class ForkJoinDemo extends RecursiveTask&lt;Long&gt; { private Long start; private Long end; ...

    Java8集合 CompletableFuture lambda表达式 新的TimeAPI 和ForkJoin Demo包

    在这个"Java8集合 CompletableFuture lambda表达式 新的TimeAPI 和ForkJoin Demo包"中,我们可以深入探讨以下几个关键知识点: 1. **Lambda表达式**: Lambda表达式是Java 8的一大亮点,它简化了对匿名函数的处理...

    java Fork Join框架及使用

    Fork/Join框架是Java7引入的一种用于并行任务执行的框架,它允许将复杂任务拆分成多个子任务,并行执行,然后通过join操作将结果聚合。Fork/Join框架特别适合处理可以递归拆分的计算密集型任务,比如大数据集的搜索...

    eclipse-collections-forkjoin-7.1.2-API文档-中英对照版.zip

    赠送jar包:eclipse-collections-forkjoin-7.1.2.jar; 赠送原API文档:eclipse-collections-forkjoin-7.1.2-javadoc.jar; 赠送源代码:eclipse-collections-forkjoin-7.1.2-sources.jar; 赠送Maven依赖信息文件:...

    探索Java并发:Future与ForkJoin框架深度解析

    ForkJoin框架 是Java 7中引入的,旨在进一步提高并发程序的性能。它使用了一种称为“工作窃取”的算法,允许线程动态地重分配任务。ForkJoin的核心思想是将大任务分解为更小的任务,然后并行处理这些任务,最后合并...

    67-ForkJoin框架学习笔记1

    ForkJoin框架是Java并发编程中的一个重要工具,它基于分治策略,旨在高效处理大量数据。框架的核心思想是将一个大型任务分解成多个小型任务,然后通过并行执行这些子任务来提高处理效率。ForkJoin框架在Hadoop ...

    基于BufferedRandomAccessFile+Forkjoin读取大数据文件.zip

    基于BufferedRandomAccessFile+Forkjoin读取大数据文件报文解析工具内容使用RandomAccessFile(BufferedRandomAccessFile 摘自网络)读取文本文件. 读取文件后使用Forkjoin任务拆分. 简单使用,查看简单示例...

    forkjoin.zip

    11-线程池 ThreadPoolExecutor 底层原理源码分析(上)-周瑜.pdf 12-线程池 ThreadPoolExecutor底层原理源码分析(下)-周瑜.pdf 13、线程池 ForkJoinPool实战及其工作原理分析 (1).pdf ...forkjoin.zip jmm(1).zip

    jbpm4.3 修复 fork join bug

    NULL 博文链接:https://sunlujing.iteye.com/blog/914429

    分而治之,ForkJoin,多线程编程

    分而治之,ForkJoin,多线程编程

    基于Java实现的forkjoin并行任务注解工具, 用于springboot项目下对大量数据单线程处理的性能问题

    基于Java实现的forkjoin并行任务注解, 用于解决springboot项目下对大量数据单线程处理的性能问题,通过一个注解将任务进行多线程拆分处理,以提高处理性能。 应用场景 比如有一个List类型的集合list,需要需要对...

    基于BufferedRandomAccessFile+Forkjoin读取大数据文件详细文档+全部资料+源码.zip

    基于BufferedRandomAccessFile+Forkjoin读取大数据文件详细文档+全部资料+源码.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能...

    Java7之forkjoin简介_动力节点Java学院整理

    Java7之forkjoin简介_动力节点Java学院整理,动力节点口口相传的Java黄埔军校

    Fork-Join框架演示

    ### Java Fork-Join框架详解与应用 #### 一、并发编程与Fork-Join框架的引入 在现代计算环境中,多核处理器已经成为标配,这为软件开发者提供了利用硬件并行性的巨大潜力。然而,传统的并发编程模型,如基于线程的...

    Fork/Join例子

    在Java编程领域,Fork/Join框架是一种并行计算模型,设计用于高效处理大量数据,尤其是在多核处理器系统上。这个框架是Java 7引入的一个重要特性,它基于分而治之(Divide and Conquer)策略,将复杂任务拆分为更小...

    JDK7中的ForkJoin模式

    JDK 7 中引入的 Fork/Join 模式是一种基于分治策略的并行编程模型,旨在简化在多核处理器环境下实现高效的并行计算。这一模式的核心思想是将复杂的大任务拆分成一系列小任务,然后将这些小任务并行执行,最后再合并...

    Java ForkJoin框架的原理及用法

    Java ForkJoin框架的原理及用法 Java ForkJoin框架是Java 1.7后提供的一种多线并发处理框架,主要思想是分而治之,将复杂的计算按照设定的阈值进行分解成多个计算,然后将各个计算结果进行汇总。ForkJoin框架的使用...

Global site tag (gtag.js) - Google Analytics