温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

EA画UML时序图中如何实现并行和临界区

发布时间:2021-12-20 14:08:40 来源:亿速云 阅读:2654 作者:小新 栏目:大数据

这篇文章将为大家详细讲解有关EA画UML时序图中如何实现并行和临界区,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

并行(parallel)

定义

并行是表明多重交互的复合片段,其行为是并发执行的。

并行结构有两个或更多的操作域,每个操作域中的消息按顺序执行,但并行操作域之间的消息可以按照任何次序执行。

示例

EA画UML时序图中如何实现并行和临界区

上图中Actor1,Actor2,Actor3分别位于各自的操作域中,各自独立地和HttpServer进行交互。

临界区(critical region)

定义

临界区表示受保护的处理区域,区域中的处理不可以和其他并行区域中的处理交错执行。

示例

这里用两个任务之间转送数据的处理为例说明。先看图。

EA画UML时序图中如何实现并行和临界区

::ControlTask和::UserInterface生命线的方框两侧都多了两条竖线,这表明,这两个类都是主动类,拥有自己的上下文。DataTransmitter的职责就是在将数据从::ControlTask传送到::UserInterface,步骤如下:

  1. ::ControlTask调用DataTransmitter的push方法,推送数据。

  2. DataTransmitter调用push方法将数据推送给DataList。DataList的push方法处于临界区中,不会被其他任务打断。

  3. ::ControlTask调用Notify方法向::UserInterface发出数据传送完毕的通知。注意:此处为异步调用。

  4. ::UserInterface收到通知以后,调用DataTransmitter的pull方法,取得数据。这个动作会执行多次直到数据取完为止。

  5. DataTransmitter的pull方法会调用DataList的pull方法,这个pull方法也是处于临界区中,不会被其他任务打断。

关于“EA画UML时序图中如何实现并行和临界区”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI