0

我有一个 java 代码,应该由多个由 JADE 平台创建的代理读取。每个代理都有自己的执行线程。因此,我的所有代理同时运行我的 java 代码,但不是同时运行。我已经尝试使用 java API 中的 Class CyclicBarrier,它应该创建一个屏障,使所有代理的线程在通过这个屏障时聚集在一起,但是这个类不适用于代理的线程,只适用于 java 线程。有人知道同步这些代理线程的方法吗?有什么建议么?

4

2 回答 2

0

Jade 中的代理在线程上运行并在该线程上处理它们的行为这一事实意味着可以利用 java 并发包 (java.util.concurrent.CyclicBarrier) 中的 CyclicBreaker。或者更简单的形式是 CountDownLatch。但这本身就是一个 OneShotBehaviour 实现。

代理行为的排序可以通过在每个交互代理行为中使用 switch case 来完成

int state = 0;
switch(state){
 state 0:
   // Do action one
   break;
 state 1:
   // Do action two
   break;
}
state++;
于 2016-05-20T12:16:52.183 回答
-1

我以这种方式延迟了相同的代理:

try{
  Thread.sleep(1000);                 //1000 milliseconds is one second.
} catch(InterruptedException ex) {
  Thread.currentThread().interrupt();
}

我希望能帮助你。

于 2015-05-05T13:31:03.970 回答