可以看到petri-net实现。 基于微积分的框架(
Jacob、虚拟机(
PVM (或状态机实现)示例
SCXML ),后者在执行某些操作之前等待状态更改,因此必须更改对数据流的控制。
要自己实现这一点,必须将控制权返回给一个运行时控制器,而不是调用下一个节点。 这是因为它会破坏堆栈。 运行时控制器还可以将上下文对象注入到活动的runnables中,以便在活动之间共享状态。 请在下面找到大致的草图。
接口活动{
活动运行(sharedcontextcontext );
}
类a实施活动{
公共活动上下文(sharedcontextcontext ) {
上下文(DOA );
返回新b (;
}
}
类b实施活动{
公共活动上下文(sharedcontextcontext ) {
数据库(上下文;
返回新c (;
}
}
//运行时控制器
sharedcontextcontext=newsharedcontext (;
活动下一步=新a (;
wile (下一步!=空) {
next=next.run (上下文;
}