一、工作流选型 acitviti和flowable的比较? Flowable是Activiti原班主创人员从activiti-6.0.0.Beta4 分支重新开发出来的一套工...
一、工作流选型 acitviti和flowable的比较? Flowable是Activiti原班主创人员从activiti-6.0.0.Beta4 分支重新开发出来的一套工...
表单定义文件是以.form为后缀, 内容格式为Json格式。 这个.form为后缀的文件是自己写的还是导出来的
1、CountDownLatch CountDownLatch允许一个或多个线程等待其他线程完成操作。 假如有这样一个需求:我们需要解析一个Excel里多个sheet的数据,...
在执行程序时,为了提高性能,编译器和处理器常常会对指令做重排序。 重排序分以下3种类型: 编译器优化的重排序:编译器在不改变单线程程序语义的前提下,可以重新安排语句的执行顺序...
线程之间的通信机制有两种:共享内存和消息传递。 在共享内存的并发模型里,线程之间共享程序的公共状态,通过写-读内存中的公共状态进行隐式通信。在消息传递的并发模型里,线程之间没...
静态代理 静态代理是代理模式的实现方式之一,是相对于动态代理而言的。所谓静态代理是指,在程序运行前,由程序员创建或特定工具自动生成源代码并对其编译生成.class文件。 静态...
参考文章:https://www.cnblogs.com/dongguacai/p/6030187.htmlhttps://www.cnblogs.com/easycloud...
上一篇对HashMap的结构做了详细的介绍,讲解了put方法还有get方法,本篇将会更深入的走进HashMap源码。 散列函数(解释hash碰撞) 在上篇文章我们讲解的get...
简单来说,HashMap由数组+链表组成的,数组是HashMap的主体,链表则是主要为了解决哈希冲突而存在的. 在分析源码之前让我们来看下源码中一些重要的变量。 下面我们从一...
1、左移运算符<< <<,有符号左移位,将运算数的二进制整体左移指定位数,低位用0补齐。 1.为正数情况 2.为负数的情况 为什么会-10的二进制会出现这么多的1呢?仔细数一...
方法getHoldCount()的作用是查询当前线程保持此锁定的个数。 方法getQueueLength()的作用是返回正等待获取此锁定的线程估计数。 方法getWaitQu...
公平锁表示线程获取锁的顺序是按照线程加锁的顺序来分配的,即先来先得的FIDO先进先出顺序. 非公平锁就是一种获取锁的抢占机制,是随机获得锁的. 打印的结果基本呈有序状态,这就...
关键字synchronized与wait()和notify()/notifyAll()方法相结合可以实现等待/通知模式,类ReentrantLock也可以实现同样的功能,但需...
下面先来看个简单的使用: 从运行的结果来看,当前线程打印完毕之后将锁进行释放,其他线程才可以继续打印。线程打印的数据是分组打印,因为当前线程已经持有锁,但是线程之前打印的顺序...
错误原因:当第一个线程进入到subtract()方法后由于ValueObject.list大小为0而进入了等待状态,并且释放了锁,第二个线程同样因此而进入了等到状态,直至ad...