如何让节点等待拓扑定义



我正在尝试在JBotSim上实现分布式算法。当我在Main类中定义整个拓扑时,我的算法工作,但是当我在画布上绘制图形时,似乎第一个绘制的节点在我完成绘制图形之前启动了算法,使我的算法完全不同步。

知道如何解决这个问题吗?

谢谢。

如果拓扑是自动启动的,如本例所示,

public static void main(String[] args){
Topology topology = new Topology();
new JViewer(topology);
topology.start();
}

则在添加节点时拓扑已经在运行。因此,一旦将每个节点添加到拓扑中,就会调用其上的onStart()方法(这实际上使它们以非同步的方式启动)。

这里的一个解决方案是删除对topology.start()的调用,并在添加完所有节点后手动启动拓扑。这可以在上下文菜单中完成(右键单击>"开始execution"。