gpt4 book ai didi

uml - 如何在序列图上表示等待信号的线程?

转载 作者:行者123 更新时间:2023-12-03 18:45:40 33 4
gpt4 key购买 nike

一个常见的多线程实现是有一些类,其中 Method_A()正在一个线程中运行并被阻塞等待一些信号/事件成员变量(例如 WaitForSingleObject )。

在不同线程中运行的交互类将调用 Method_B()它做了一些工作,设置信号/事件变量,也许做更多的工作,然后返回。

我如何在序列图上表示这种交互?

我是否应该有两条生命线,每个线程一条,即使它们在类的同一个实例上运行?我的建模工具(Enterprise Architect 12)不允许同一个类在序列图中出现两次,所以似乎不鼓励这样做。

编辑:Geert 指出序列图应该使用实例,而不是类,这是一个公平的评论。然而问题是一样的:多条生命线意味着多个实例,但在问题 Method_A() 中和 Method_B()在同一个实例上运行,只是来自不同的线程。怎么能代表呢?

最佳答案

我决定采用的方法是为同一个实例添加两条生命线,然后用 <<thread>> 标记一条生命线。构造型并将其运行的线程添加到名称中:

My attempt at multi-threaded Sequence Diagram

我意识到这可能不是标准的 UML,但它似乎以清晰的方式涵盖了我想表达的所有信息,这是最重要的事情,对吧?

Martin Fowler 在他的书中多次提到,有时非规范图实际上更清晰。所以这是我的借口。 :)

关于uml - 如何在序列图上表示等待信号的线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51191521/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com