繁体   English   中英

在活动图中建模线程间通信

[英]Modelling inter thread communication in activity diagram

我正在尝试 model 运行多个并发流的应用程序。 在这种情况下,多个线程可以创建事件并将它们存储在缓冲区中,然后由另一个线程收集和显示。 接收线程应该阻塞并等待传入的事件。

我目前是这样建模的: 在此处输入图像描述 此示例使用 object 流。 但是我不确定这是否是 model 这种类型的线程间通信的正确方法。

我正在查看的另一个选项是使用信号,但我也不确定。 任何帮助,将不胜感激。

每项活动都需要提供所有代币才能开始。 您将不得不使用缓冲区节点作为队列。

Object 流很好地捕获了线程间通信。

如果您想要更具体并且您的系统实际上使用消息,您也可以使用信号。

但是您的图表中存在一个问题: Display Event操作在每次调用时消耗所有提供的控制令牌和一个 object 令牌。 我无法从您的图表中看出,但可能只有一个控制令牌。 这意味着,该操作只会运行一次。 解决办法是,删除控制流。 然后针对每个传入的 object 令牌开始该操作。

每个 output 引脚都充当本地缓冲区。 如果令牌的生成速度快于事件的显示速度,则令牌可能会堆积在多个图钉中。 在这种情况下,未定义哪个引脚将成为下一个令牌的来源。 这不一定是个问题,但如果要按时间顺序处理令牌,则需要使用中央缓冲区。 该符号是一个带有关键字 «central buffer» 的矩形

暂无
暂无

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

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