java - JADE - 2 个代理之间的并行行为不起作用

标签 java agents-jade

我试图按照提供的程序在 2 个代理之间实现并行性 here .
我得到的输出(如下所示)与预期的完全不同。

该程序在执行操作期间打印代理的名称和当前系统时间。我尝试在 2 个代理之间执行并行性,其中每个代理都应该打印自己的名称和当前时间,但只有 2 个代理中的后者正在执行其操作。

javac test.java
java jade.Boot -agents aaa:test ccc:test
....
Agent container Main-Container@192.168.122.1 is ready.

100: ccc
200: ccc
300: ccc
400: ccc
500: ccc

这是我实现的代码

import jade.core.Agent;
import jade.core.behaviours.*;

public class test extends Agent{

protected void setup(){
addBehaviour(new Looper(this,100));
}

}

class Looper extends SimpleBehaviour
{
    static String offset = "";
    static long   t0     = System.currentTimeMillis();

    String tab = "" ;
    int    n   = 1;
    long   dt;

    public Looper( Agent a, long dt) {
            super(a);
            this.dt = dt;
            offset += "    " ;
            tab = new String(offset) ;
    }

    public void action()
    {
            System.out.println( tab +
               (System.currentTimeMillis()-t0)/10*10 + ": " +
                    myAgent.getLocalName() );
            block( dt );
            n++;
    }

    public  boolean done() {  return n>6;  }

}

预期输出:

java jade.Boot aa:Agent1 zzzzz:Agent1

0: zzzzz
0: aa
10: zzzzz
10: aa
300: zzzzz
310: aa
510: zzzzz
510: aa
610: zzzzz
610: aa
910: zzzzz
920: aa
1020: zzzzz
1020: aa
1220: zzzzz
1220: aa
1520: zzzzz
1520: aa
1520: zzzzz
1530: aa
2030: zzzzz
2030: aa
2530: zzzzz
2530: aa

最佳答案

它是关于“-agents”选项的,它是一个以分号分隔的代理说明符列表。你可以用这个代替:

java -cp jade.Boot -agents "aaa:test;ccc:test"

或指定类路径:

java -cp /home/myusername/jadelibpath/libjade-4.3.jar:. jade.Boot -agents "aaa:test;ccc:test"

关于java - JADE - 2 个代理之间的并行行为不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46513110/

相关文章:

http - JADE 是在 HTTP 下工作还是在 HTTP 上工作?

java - 确定 Hazelcast 缓存使用的内存

java - 二维数组循环越界

java - 如何在一列中使用两个 AS 运算符?

java - System.arraycopy 截断字节

scala - 将高度自治的参与者视为代理人是否合理?

java - 扩展抽象类后的方法

java - 我想将文件从一个代理发送到另一代理?

java - Jade Java代理通信

java - 迁移失败: Aborting migration: Timeout to receive migration response has expired