anylogic - 代理在 AnyLogic 中同时接收多条消息
问题描述
假设您有两种代理类型:
- 人口为 10 的代理类型 1
- 人口为 1 的代理类型 2
假设类型 2 的状态图有如下两种状态: 代理类型 2 状态图
如果类型 1 的所有 10 个代理同时发送相同的消息,或者至少以小于图像中显示的超时转换的间隔发送,那么当类型 2 的代理处于“evaluateLenderDecision”状态时收到的消息会发生什么情况?消息是否被丢弃或排队,直到再次达到“waitingForLender”状态?
解决方案
首先,我建议您观看我制作的这个 youtube 视频,该视频解释了消息是如何发送的。https://www.youtube.com/watch?v=Fe2U8IAhlHM
使用 send 或 Deliver 的消息在连接对象中接收,其中消息被重定向到您在其中定义的不同状态图。
在您的情况下,您可能应该自己生成一个队列,其中包含已收到的所有消息(可能使用集合)
如果您的消息同时发送,则从您的状态图的角度来看,您的 10 个代理中有 9 个将丢弃他们的消息,因为在收到第一个消息后不会有状态图等待消息,但不是从您的连接角度来看查看... 所有消息都被有效接收。
推荐阅读
- excel - 如何复制区域并粘贴到可见(过滤区域)
- css - 我应该在哪里为子组件编写父依赖样式?
- javascript - Function.prototype 和 Funciton.__proto__
- continuous-integration - 如何避免“此管道没有阶段/作业”。在 GitLab CI
- python - 值类型错误 Python3:只能连接元组
- flutter - 当我使用 facebook flutter 登录时出现“FacebookLoginStatus.error”
- database - 出现错误:错误状态:无法获取 DocumentSnapshotPlatform 上不存在的字段
- jprofiler - JProfiler:为什么代理类不显示在调用树中?
- javascript - 如何在不滚动的情况下按下按钮上下移动
- javascript - 我想用相同的按键操作按顺序交替执行不同的操作过程