- 博客(6)
- 收藏
- 关注
原创 elasticjob 分片策略
Elasticjob的分片策略实现了三种。AverageAllocationJobShardingStrategy是最基础的分片策略。private Map<JobInstance, List<Integer>> shardingAliquot(final List<JobInstance> shardingUnits, final int shard...
2018-10-26 21:35:49 2084
原创 light task schedule的定时任务实现源码解析
light task schedule(以下简称lts)的任务调度是在jobTracker中实现的。以下关于任务队列的数据存储以mysql为例子。 jobTracker中进行调度的任务需要jobClient提交,当接收任务提交对任务的相关信息进行存储的同时也会开始对相应的任务进行调度。以mysql为例子,对于一个节点组nodeGroup的cron形式的定时任务的定时调度涉及三张表。...
2018-10-17 01:53:10 1382 7
原创 scala的stream流
Scala的流的实现在Stream中。主要用到的实现类是Cons类。@SerialVersionUID(-602202424901551803L)final class Cons[+A](hd: A, tl: => Stream[A]) extends Stream[A] { override def isEmpty = false override def head =...
2018-10-13 19:17:48 3496
原创 java8的stream流操作的数据结构
在java8的流操作中分为终止符和非终止符。非终止符不会触发数据的处理。每次通过stream()方法新建立一个流的时候都会创建一个Head类。这个类是ReferencePipeline的一个内部类,同时也继承了ReferencePipeline,代表当前流的一个初始状态。之后每进行一次中间操作,都会根据操作的类型生成一个StatelessOp或者StatefulOp代表有无状态的中间操作,...
2018-10-06 02:28:10 1183
原创 java8中stream中的任务拆分
在java8中流操作中,只有到终止符才会进行真正的求值。在设定了并行操作的时候,会对任务进行分解。任务的分解用到了joinfork框架。@Overridepublic void compute() { Spliterator<P_IN> rs = spliterator, ls; // right, left spliterators long sizeEs...
2018-10-04 17:50:00 1931 3
原创 java8的spliterator
Java8中容器在创建一个stream()流的过程中首先会创建一个相应的spliterator来作为迭代器来使用,这个迭代器支持并行迭代。根据每个容器不同的性质,这个迭代器也对应了相应的特征量。例如ArrayList。public int characteristics() { return Spliterator.ORDERED | Spliterator.SIZED | ...
2018-10-02 01:48:54 1231
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人