张伟真的博客

用心享受生活, 博客逐步迁移中···

java中的volatile关键字

java中的volatile关键字 定义 volatile是java中的关键字,主要修饰变量,提供了可见性和禁止指令重排的特性,不保证原子性 1. 可见性 多线程下,每个线程有自己的工作内存,线程对共享变量读写不一定是直接在主存中进行的,可能在线程自己的工作内存.当多线程下有线程改了共享变量的值,而这个值对其他线程来说是不可见的,导致脏读现象 volatile关键字就是解决这个问题的 vol......

java中的锁--ReentrantLock可重入锁

java中的锁–ReentrantLock可重入锁 java中有各种锁,开个锁的专题,讲讲java中的各种锁 一、ReentrantLock可重入锁 ReentrantLock,也是大家常听到的可重入锁. 是java.util.concurrent.locks包下的同步工具类. 该锁的特点跟名称一样,允许一个线程多次获取同一个锁而不产生死锁.这与synchronized关键字提供的锁机制有点......

工作流系列--ContinueProcessOperation流转源码解析

工作流系列–ContinueProcessOperation流转源码解析 分析 工作流节点之间怎么流转呢? 今天来详细讲讲工作流节点之间的流转是怎么流转的,涉及到的ContinueProcessOperation流转类 省流总结直接看最后总结 揭秘ContinueProcessOperation的神秘面纱 执行方法如下 1234567891011121314@Overridepublic v......

工作流系列--EndExecutionOperation源码解析

工作流系列–EndExecutionOperation源码解析 流程结束 流程终究会结束, 那流程是怎么结束的呢,这里涉及到一个关键的类,就是我们的EndExecutionOperation 省流直接看文章末尾总结 主代码很简洁,就是2个分支,流程实例级别则走handleProcessInstanceExecution,否则走handleRegularExecution handlePro......

工作流系列--TakeOutgoingSequenceFlowsOperation出线分析

工作流系列–planTakeOutgoingSequenceFlowsOperation出线分析 一、 分析 这节我们来看看planTakeOutgoingSequenceFlowsOperation出线究竟做来啥 省流总结直接看文档末尾 源码中看出这里发出去TakeOutgoingSequenceFlowsOperation的命令,来看下命令里面怎么处理 1234567891011121......

工作流系列--行为Behavior分析

工作流系列–行为Behavior分析 在agenda提供的流转类里面看到类多个behavior 今天简单说下,扒了下继承关系如下 想要理解 Behavior 是什么东西,必须要和流程图联系起来,流程图上的一些元素比如:网关、用户任务、子流程、事件等等都有对应的行为,每种行为的处理方式都不同,例如互斥网关,究竟通过网关后怎么走,都有各自的判断行为,离开行为 例如完成任务中的TriggerEx......

工作流系列--agenda引擎计划分析

工作流系列–agenda引擎计划分析 先看下源码注释 可以理解成agenda是一个线程池,命令执行前会赛一系列的任务Operation进去,然后执行. 当池中任务没有了则结束. 每个Operation任务都是一个 Runnable 类型的对象,值得深究为什么不是其他的类型, 可能为了后续线程做并发处理设计的 上一篇章讲了命令执行类CommandInvoker主要做了3件事情 1、要执行的......

工作流系列--完成任务命令分析

工作流系列–完成任务命令分析 上一篇讲到activiti使用命令模式,那究竟activiti是怎么通过命令去完成任务的,做了什么,我们一起看看 既然是跟任务相关,前面initServices初始化的时候初始了6个service,跟任务相关的,我们可以看看TaskService,定义了任务相关操作的入口,看实现最终commandExecutor去执行对应的CompleteTaskCmd命令 ......

工作流系列--CommandContextInterceptor分析

#工作流系列–CommandContextInterceptor分析 上一篇分析 ProcessEngineAutoConfiguration时,在流程初始化的时候有加载的拦截器链中,加载了拦截器CommandContextInterceptor 今天我们就来讲讲CommandContextInterceptor 12345678910111213141516171819public Col......

工作流系列--ProcessEngineAutoConfiguration分析

工作流系列 – ProcessEngineAutoConfiguration分析 上一篇章我们讲到,找到了入口配置类,那今天我们就来讲讲这个配置类究竟做了啥,有什么魔法 自动装配又装了哪些东西 类的继承关系如下图 从ProcessEngineAutoConfiguration源码第一部分,装配了一个配置Bean,这个配置bean是整个流程的基础,规定了流程用什么序列化json,数据源,ss......