在UML交互图中表示多个异步线程

时间:2016-10-21 18:23:30

标签: multithreading asynchronous uml sequence-diagram

我的流程非常高,如下所示: -

  1. 多个订阅者线程订阅了队列
  2. 每当队列中有消息时,一个用户线程就会收到它
  3. 调用数据库表C
  4. 使用从表C返回的值转换消息并将其写入数据库表A
  5. 向队列发送确认以从队列中删除消息
  6. 后台线程以指定的时间间隔继续轮询数据库表A
  7. 后台线程会读取表A
  8. 中显示的消息
  9. 通过调用方法transform()来转换消息。
  10. 已转换的消息将写入表B
  11. 原始邮件将从表格A中删除。
  12. 我试图通过以下UML序列图表示上述流程: -

    enter image description here

    有人可以告诉我如何更新上图以添加以下信息: -

    1. 如何表示与队列异步侦听的多个订阅者线程?
    2. 如何表示数据库调用和不同的表?
    3. 如何表示在指定时间间隔内发生的背景轮询(让我们在10秒内说一次)?
    4. UML序列图是否有其他选择可以清楚地传达流程?

1 个答案:

答案 0 :(得分:0)

  1. 您无法表示多个订阅者线程正在侦听,因为在侦听期间,不会交换任何消息。您可以做的是显示一些Subscriber实例,每个实例都进行订阅。

  2. 您有两个选择:将每个表显示为单独的生命线(如您所示),或将数据库显示为单个生命线,并让消息指定访问哪个表(我认为这是大多数设计师的意思做它。)

  3. 您可以展示一些额外的getMessages消息,但不会得到任何回报。