可以在等待块中更改内部队列行为吗?
相反,该元素将代理保存在标准队列中,它保存在 HashMap 中,以便事件处理程序中的代码可以以较低的代码复杂度执行搜索?
我找到的解决方案是使用迭代器滑动队列中的所有元素,但使用 HashMap 可以更快地找到特定代理是否存在。我不会将全局 HashMap 变量放在主代理的onStartup事件处理程序中。
我想你误解了我在另一个问题上所说的话。您不会更改Wait块的队列行为。您只需添加一个 HashMap(或 LinkedHashMap)类型的 Collection 来帮助您进行信息管理。该集合将具有键 ID 和对象代理,因为搜索结构比搜索 Anylogic等待过程建模库元素更有效。
如果您不想为每个等待块创建一个集合,您可以做的是使用新代理创建一个自定义元素。
为此,您创建一个新的代理类型,并在该代理中放置一个输入端口和一个输出端口作为进入点和退出点。比你放置一个等待块和一个 HashMap 类型的集合来存储信息。您还必须创建一些参数来输入信息(您需要检查订单是否已经存在的其他部门等)。这是更高级的 Anylogic 使用,可能会让初学者感到困惑,所以我不建议在不熟悉 Anylogic 的情况下进入它。