序列图:线程处理队列中的消息

Sequence Diagram : Thread processing over messages in queue

从序列图符号可以看出,sync-callsasync-calls 具有“solid实心线”和“细头实线”。

考虑案例,如;

  1. 一些通知,确实在队列中添加了一条消息(现在这个异步线程在这里死掉了)。
  2. 队列已经有一个处理器线程,它检查队列空状态,并一个接一个地处理队列中的消息(这个线程正在遍历 queue.empty() 检查,以处理消息)

现在,关注的是;

  1. 对于第一点,如何在序列图上表示"platform notification",就像一个事件? [我一直在使用"dotted line"到目前为止 "event name",但从 UML 细节中读取 "dotted lines" 通常用于 returns]
  2. 对于第 2 点,如何显示 "processor-thread operation" 与第一个线程的不同之处?。因为,队列中的消息处理顺序不是按照消息添加到队列的顺序触发的(但顺序是异步遵循的)。
  1. 使用带空心箭头的实线。

  2. 将处理器线程显示为单独的生命线。不要将队列显示为生命线,因为它只是实现异步消息传递的一种手段。我会这样建模:

如果重要的是表明处理发生在消息发送之后,您可以在空心箭头和处理之间留一些垂直 space(空闲时间),如下所示:

如果你真的想显示队列和轮询机制,你可以按如下方式进行,但注意现在所有的消息都是同步的。