逻辑地址转换成物理地址,拿到页号之后,请问是先访问快表看看有没有页表项,还是先查看页表寄存器的页表长度判断是否越界?百度了好像基本没讲到这个顺序问题
不知道你这个问题是否已经解决, 如果还没有解决的话:实现完了组件之后,你需要定义规则文件,之前规则文件的路径配置在了config/flow.xml
中,所以我们要编辑这个文件。
Liteflow的规则文件定义非常简单好理解。简单的配置,但是能覆盖大部分的应用场景。
先来看一个示例:
<chain name="chain1">
<then value="a,c"/>
<when value="b,d"/>
<then value="e,f,g"/>
</chain>
在Liteflow中,定义了then和when两种线程执行方式,then代表串行,上面的示例中,c必须要等a执行完才能执行。when代表并行,上面的示例中,b,d同时执行。并且b,d都执行完了,下面的e,f,g才能挨个顺序执行。
再来看个稍微复杂点的:
<chain name="chain1">
<then value="a,c(b|d)"/>
<then value="e,f,g"/>
</chain>
Liteflow提供了条件组件,这种节点的职责就是路由,根据业务逻辑来路由到b节点还是d节点。
条件组件的定义示例如下,需要去继承NodeCondComponent
这个类,最终返回的b就是最终要路由到的节点
@Component("c")
public class CComponent extends NodeCondComponent {
@Override
public String processCond() throws Exception {
//你的业务逻辑
return "b";
}
}
Liteflow允许你编辑嵌套的流程,例子如下:
<chain name="chain1">
<then value="a,c,strategy1,g"/>
</chain>
<chain name="strategy1">
<then value="m(m1|m2|strategy2)"/>
</chain>
<chain name="strategy2">
<then value="q,p(p1|p2)"/>
</chain>
在这个例子中,这3条链路是串起来执行的,在xml里,可以写你的组件id,也可以写流程id。配合之前的例子,是不是能表达的流程就更加丰富了点呢。
以上3个例子涵盖了Liteflow最主要的功能,当然Liteflow还提供一些其他的特性,比如如何进行循环执行,如何打印步骤,并且Liteflow还提供了一个简易的监控模块,用于统计你的组件执行情况。这里就不一一介绍了。具体你可以点击Liteflow的Gitee主页进行查看:
https://gitee.com/bryan31/liteFlow