繁体   English   中英

Anylogic:释放特定资源

[英]Anylogic: Release specific resource

AnyLogic 资源还有另一个小问题。

我希望能够从资源池中释放特定资源——而不仅仅是池中的任何资源。 原因是我偶尔会从资源池中获取多个资源(一次一个),然后希望一次一个地再次释放资源。 但我不想从池中释放“任何”资源,我希望能够指定要释放池的哪个特定资源。

这是可能的还是这是资源实施的限制之一?

我可以根据情况想出很多方法...第一个是在发布之前使用 selectOutput 来决定是否发布。 selectOutput 将检查它是否是要释放的正确资源

选择输出

另一种选择,如果你想用相同的释放块但以给定的顺序释放所有东西,你可以在释放块之前放置一个等待块并等待合适的时间释放资源

等待

另一种,是使用wrap up actions,在wrap up中放一个wait block,等待其他资源到达那里再释放,这样它们就可以按顺序释放了

后等待

以前对我们有用的一种方法是使用单独的代理来获取资源。 例如:

  1. 假设有主要的WorkItem代理
  2. 当需要资源时,使用Split块生成一个名为ResourceHolder的新代理
  3. 新的ResourceHolder然后使用正常的Seize获取资源
  4. 之后,携带该单元的ResourceHolder使用Combine连接回WorkItem

ResourceHolder必须存储在WorkItem中的某个位置,并且它应该被构建为能够分辨它携带的是哪个资源单元(即原始资源池、资源类型、何时被获取等)。 然后,当只需要释放特定资源单元时,model 需要在WorkItem中找到正确的ResourceHolder并通过Release块运行它。 这有点麻烦,但绝对可以很好地控制发布逻辑。

使用标准占用块释放特定资源的唯一方法是指定您要释放在特定占用块中占用的资源

在此处输入图像描述

这意味着您需要尽可能多的 seize 和 release 块来控制释放过程。 即,如果您占用 5 个资源类型并希望在流程图过程中将它们 1 个释放,则您将需要 5 个占用块和 5 个释放块。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM