Multithreading 多代理线程同步

Multithreading 多代理线程同步,multithreading,agent,thread-synchronization,agents-jade,multi-agent,Multithreading,Agent,Thread Synchronization,Agents Jade,Multi Agent,我有一个java代码,应该由多个代理读取,这 都是由玉台创造的。每个代理都有自己的执行线程。 因此,我的所有代理都同时运行我的java代码,但不是同时运行。 我尝试过使用JavaAPI中的CyclicBarrier类,应该 创建一个屏障,使所有代理的线程在通过时聚集在一起 通过这个障碍,但是这个类不适用于代理的线程, 只针对java线程。 有人知道同步这些代理线程的方法吗? 有什么建议吗?我以同样的方式延迟了代理: try{ Thread.sleep(1000);

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

我以同样的方式延迟了代理:

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

我希望能帮助您。

事实上,Jade中的代理在线程上运行并在该线程上处理其行为,这意味着可以使用java并发包(java.util.concurrent.CyclicBarrier)中的CyclicBreaker。或者更简单的形式是倒计时闩锁。但这本身就是一个OneShotBehavior实现

可以通过在每个交互代理行为中使用切换案例来对代理行为进行排序

int state = 0;
switch(state){
 state 0:
   // Do action one
   break;
 state 1:
   // Do action two
   break;
}
state++;

为什么需要代理同步?代理应该独立工作。无论如何,您可以为此设置一个协议。这里有一个例子:等待挂钟在任何方面都不是一种同步机制。