【问题标题】:Using a wait block to make agents wait until condition is true使用等待块让代理等到条件为真
【发布时间】:2021-06-07 17:23:45
【问题描述】:

我正在使用 wait 块让代理等待,直到条件为真(资源空闲)。我尝试在 wait 块“输入”字段中编写以下内容:

if(resourcePool1.idle()> 0){ self.free(agent); }

问题是,如果资源变得繁忙,代理将被困在等待块内并且不会被释放,即使条件再次变为真。然后,当下一个代理进入 wait 块(并且条件再次变为真)时,它将通过它前面的代理,但现在它被卡住了。有没有办法解决这个问题?

【问题讨论】:

    标签: java simulation anylogic


    【解决方案1】:

    你所做的是正确的,但你缺少一些东西。

    除此之外,您还需要在 resourcePool onrelease 操作中执行类似的操作

    if(wait.size()>0)
    wait.free(wait.get(0));
    

    然后,每当资源空闲时,您可以从该等待块中释放一个代理(如果那里存在)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-09
      • 1970-01-01
      • 1970-01-01
      • 2016-11-30
      • 2017-01-14
      • 2015-09-24
      • 1970-01-01
      相关资源
      最近更新 更多