2009-10-29 17 views
52

¿Cómo se puede ilustrar claramente múltiples hilos de ejecución en un diagrama de secuencia o un diagrama similar?¿Cómo ilustrar múltiples hilos en el diagrama de secuencia?

no he podido encontrar ejemplos claros. Todos los diagramas que veo se utilizan para ilustrar un solo hilo.


actualización: La respuesta aceptada era el mejor ejemplo que vi pero deja que desear un poco justo. Terminé ilustrando los hilos en diagramas de secuencia separados. No estoy seguro si el diagrama de secuencia necesariamente funciona para múltiples hilos.

+1

parece idéntica a http://stackoverflow.com/questions/954193/is-there-an-inituitive-uml-approach-to-depict-threads – feuGene

Respuesta

23

Aquí es un diagrama que puede ser útil, y en el lado izquierdo se puede ver la explicación: http://sdedit.sourceforge.net/multithreading/example/index.html

Multithreading Sequence Diagram

+0

vi eso. No está mal .. pero me convierte un poco mareado cuando lo leí;) –

+0

Manejo de múltiples hilos será un poco complicado, ya que, parte de la razón para el uso de hilos es que son autónomos. Es posible que desee hacer hilos relacionados juntos, como programas separados. Por lo tanto, el subproceso 1 (subproceso del controlador) se inicia, genera 3 subprocesos, procesan e informan al controlador. Entonces, estos estarían en un diagrama de secuencia. Puede haber otros 20 subprocesos que se ignoran, pero eso está bien, ya que están haciendo otras tareas no relacionadas. –

1

Usted puede estar interesado en Message Sequence Charts, o MSC.

Here es una diapositiva que describe MSC en pocas palabras.

+0

¿Hubo algún vínculo con ejemplos de gráficos? –

+0

Edité mi respuesta para vincularla a un diagrama de ejemplo. – mouviciel

+1

No veo cómo eso representa múltiples hilos. Debo necesitar más cafeína. –

5

Se puede utilizar un fragmento de "par" para modelar múltiples llamadas sincrónicas se ejecutan en paralelo. El fragmento consiste en un rectángulo con la etiqueta "par". El rectángulo está dividido en varios cuadros, cada uno representa un hilo de ejecución.

Un ejemplo se da en esta página: http://www.ibm.com/developerworks/rational/library/3101.html#N10227

+0

También debe mostrar un ejemplo en su respuesta. Dado que su enlace puede ir hacia abajo ... –

+0

@PhilipG la respuesta seleccionada actualmente es aún peor en ese sentido –

+1

Esto no funciona si la llamada simplemente necesita generar un hilo y regresar al instante. – LuckyLikey

10

me encontré con esta pregunta en Google y no era un gran fan de la respuesta aceptada por lo que sólo ocurrió con la mía. Así es como yo representaba el modelo de hilos en mi solicitud (mi organización lo llama el 'punto de vista de concurrencia'):

Concurrency viewpoint

Es de esperar que ayude a alguien.

2

Este es un duplicado de la respuesta de Sihaya, pero con detalles sobre cómo llevar a cabo con herramientas en la web y un ejemplo visual de que no va a desaparecer.

enfoque diagrama El UML de secuencia es utilizar el fragmento de "par" para modelar múltiples mensajes que se procesan en paralelo. A continuación hay una descripción de texto que, cuando se ingresa en la herramienta PlantUML disponible en la web, producirá el siguiente diagrama.

@startuml 

Person -> MicrowaveOven : Cook Food 
activate MicrowaveOven 
par 
MicrowaveOven -> MicrowaveOven : Activate Magnetron 
else 
MicrowaveOven -> MicrowaveOven : Activate Rotation Motor 
end 

MicrowaveOven --> Person : Delicious Food 
deactivate MicrowaveOven 

@enduml 

par UML example

Cuestiones relacionadas