Java 唤醒行为被其他活动阻止

Java 唤醒行为被其他活动阻止,java,agents-jade,multi-agent,Java,Agents Jade,Multi Agent,我正在JADE中开发一个多代理系统,并使用Wakerbehours模拟事件。 然而,在某些情况下,守夜人醒得太晚会导致问题。我已经在下面的代码中对此进行了测试,但是在while循环完成后,“Im awake”消息总是会弹出。我怎样才能避免这种情况 public class Test_Agent extends Agent { protected void setup() { Tools.prnt(this, "starting waker"); addBehaviour(new

我正在JADE中开发一个多代理系统,并使用Wakerbehours模拟事件。 然而,在某些情况下,守夜人醒得太晚会导致问题。我已经在下面的代码中对此进行了测试,但是在while循环完成后,“Im awake”消息总是会弹出。我怎样才能避免这种情况

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++;
    }   
}
公共类测试代理扩展代理{
受保护的无效设置(){
prnt(本“启动唤醒器”);
AddBehavior(新的TickerBehaviour(本,1000){
受保护的void onTick(){
prnt(我的代理人,“我醒着”);
}
});
int i=0;
而(i<100000){
System.out.println(i+“waiting.”);
i++;
}   
}
提前谢谢!
干杯,Jacek据我所知,行为的处理在setup()之后开始。 这就是为什么您应该在行为中移动循环,如果您想在循环期间处理事件,请避免循环并使用循环行为(因为行为是依次处理的)