当前位置: 首页 > 知识库问答 >
问题:

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

范瀚昂
2023-03-14

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

编辑:Geert已经注意到序列图应该使用实例,而不是类,这是一个公平的评论。然而,问题是相同的:多条生命线意味着多个实例,但在问题中,method_a()method_b()只是从不同的线程操作同一个实例。那怎么代表呢?

共有1个答案

牛枫
2023-03-14

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

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

Martin Fowler在他的书中确实提到过几次,有时一个非规范性的图表实际上更清晰。所以这就是我的借口。:)

 类似资料:
  • 有几个消费者线程在等待由单个生产者线程提供的异步到达的数据的信号量。如果消费者已经获取了信号量,生产者如何获取信号量来通知他们呢?在这里,它被阻塞了,不能执行notifyAll() 当然,删除“synchronized”会导致 同样,生产者线程被阻塞,无法获取信号量来通知消费者。 更新:我应该提到,这在第二次数据准备就绪时失败。第一次数据准备就绪时,生产者没有阻塞。下一次产生数据时,生产者阻塞了。

  • 问题内容: 在这里,我想每秒钟调用一次“ Log.d”和“ postInvalidate”。但是,当我从LogCat检查它时,似乎循环运行的速度比我希望的要快。为什么这个循环不等待1000ms? 以下是LogCat中的输出。因此,您可以看到它根本没有休眠1秒钟。我也使用了Thread.sleep(在您建议之后) 这是最新的代码。是布尔值,现在是事实。 输出是 问题答案: 您需要类的方法。 使发送此

  • 我想暂停在JavaFX应用程序线程上执行方法并等待用户与UI交互。不要冻结UI很重要。 例子: 我应该如何实现< code>pause()和< code>resume()方法?< br >事件处理程序的执行应在< code>pause()处等待;调用,直到用户按下< code>resume按钮并且调用< code>resume方法。

  • 问题内容: 我有可更新的OHLCChart。我需要在图表上画一条线。 如何执行呢? 问题答案: 如果要在轴上的给定位置绘制垂直或水平线,则可以使用ValueMarker: 如果要绘制水平线,请使用。

  • 在highcharts中有没有一种方法,我们可以在图表中隐藏一个序列,但仍然显示在图例上? 或者,我们是否可以添加一个假想/伪图例项,但并不真实存在于图表中? 对于上下文:客户要求我们根据它们的类别为条形图着色(前10条应该是默认颜色深蓝色,接下来的2条是蓝色,最后3条是浅蓝色)。现在他们要求我们放3个图例:A组(前10小节),B组(后2小节),C组(后3小节)。B组和C组不需要点击,因为它们是虚

  • 我正在编写一个基于await/sleep范式的网络绑定应用程序。 我更喜欢这样一个答案,不创建任何额外的线程