JADE 是一个智能体开发平台,目前使用的人比较少,资料也少,常常导致遇到问题在网上找不到对应的解决办法,只能自己解决。所以也把自己的一些经历记录下来,希望可以帮助到有需要的朋友。
最近遇到的一个问题,Agent的一个Behaviour在结束前的最后一行代码如果写的是添加另一个Behaviour,后面这个Behaviour就不会启动。(JADE中的一个Behaviour就是一个线程)
就像下面这样,添加完行为后done=true就退出当前线程。
但是这样写的问题就是 这个退出前添加的行为不会启动!!!!
代码的逻辑我认为没有问题,我认为问题可能处在JADE在线程调度上,所以我想了一个办法,在线程退出前,先休眠一秒,写成下面这样
果然代码逻辑就对了,添加的行为成功启动。