WakerBehaviour 被其他活动阻塞
WakerBehaviour gets blocked by other activities
我正在 JADE 中开发多代理系统并使用 WakerBehaviours 来模拟事件。
然而,在某些情况下,WakerBehaviour 唤醒得太晚而导致问题。我已经在下面的代码中对此进行了测试,但是 "Im awake"-消息总是在 while 循环完成后弹出。我怎样才能避免这种情况?
public class Test_Agent extends Agent {
protected void setup() {
Tools.prnt(this, "starting waker");
addBehaviour(new TickerBehaviour(this, 1000) {
protected void onTick() {
Tools.prnt(myAgent, "Im awake.");
}
});
int i = 0;
while(i < 100000) {
System.out.println(i+" waiting.");
i++;
}
}
提前致谢!
干杯,亚采克
据我所知,行为的处理是在 setup() 之后开始的。
这就是为什么你应该在行为中移动循环,如果你想在循环期间处理事件,请避免循环并使用循环行为(因为行为是依次处理的)。
我正在 JADE 中开发多代理系统并使用 WakerBehaviours 来模拟事件。 然而,在某些情况下,WakerBehaviour 唤醒得太晚而导致问题。我已经在下面的代码中对此进行了测试,但是 "Im awake"-消息总是在 while 循环完成后弹出。我怎样才能避免这种情况?
public class Test_Agent extends Agent {
protected void setup() {
Tools.prnt(this, "starting waker");
addBehaviour(new TickerBehaviour(this, 1000) {
protected void onTick() {
Tools.prnt(myAgent, "Im awake.");
}
});
int i = 0;
while(i < 100000) {
System.out.println(i+" waiting.");
i++;
}
}
提前致谢! 干杯,亚采克
据我所知,行为的处理是在 setup() 之后开始的。 这就是为什么你应该在行为中移动循环,如果你想在循环期间处理事件,请避免循环并使用循环行为(因为行为是依次处理的)。