【问题标题】:WakerBehaviour gets blocked by other activitiesWakerBehaviour 被其他活动阻止
【发布时间】:2017-05-12 07:03:20
【问题描述】:

我正在 JADE 中开发一个多代理系统,并使用 WakerBehaviours 来模拟事件。 然而,在某些情况下,WakerBehaviour 醒来太晚了,这会导致问题。我在下面的代码中对此进行了测试,但是在 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++;
    }   
}

提前致谢! 干杯,Jacek

【问题讨论】:

    标签: java agents-jade multi-agent


    【解决方案1】:

    据我所知,行为处理是在 setup() 之后开始的。 这就是为什么你应该在行为中移动循环,如果你想在循环期间处理事件,请避免循环并使用循环行为(因为行为是依次处理的)。

    【讨论】:

      猜你喜欢
      • 2015-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-03
      • 1970-01-01
      相关资源
      最近更新 更多