Как визуализировать многопоточные процессы? - PullRequest
3 голосов
/ 28 июля 2011

Я хочу смоделировать поведение многопоточного приложения. Есть много синхронизации (ManualResetEvents и т. Д.). Я попытался использовать диаграмму последовательности, но, кажется, не хватает удобных визуализаций синхронизации Так какую диаграмму я должен использовать для таких задач?

Ответы [ 3 ]

5 голосов
/ 28 июля 2011

Посмотрите на эту статью

Я использовал как диаграммы активности UML, так и диаграммы в этой статье

EDIT

Чтобы поделиться небольшим опытом: не ожидайте, что эти диаграммы решат все проблемы проектирования с многопоточностью. По той же причине, по которой модульное тестирование многопоточных систем является сложным, составление диаграмм также является трудным Например, взгляните на диаграмму, упомянутую в 6.45.Вапуру ответ. Да, он показывает одновременное выполнение слоев, и это поможет вам точно определить потенциальные ошибки, но попытайтесь визуализировать, как будет выглядеть эта диаграмма, при попытке показать несколько одновременных клиентов веб-сайта. Это становится очень быстро. Я не говорю, что это невозможно сделать, однако количество возможных изменений настолько велико, что потребуется много усилий, чтобы сделать это правильно.

Это хороший пример, который поможет вам понять, почему многопоточность сложна. Если вы не можете нарисовать его, вы, вероятно, не поймете его сложность полностью, вы не сможете проверить его, и у вас всегда будет то ноющее чувство, что вы что-то забыли.

Вот почему у меня есть надежды на платформы и языки, чтобы устранить эти проблемы, но мы еще не пришли.

1 голос
/ 28 июля 2011

Если вы хотите исследовать изменения состояний критических объектов во время их обмена сообщениями друг с другом с временными ограничениями, вы можете использовать UML 2 Временная диаграмма

Может проверять http://www.uml -diagrams.org / timer-diagrams-examples.html сайт для простого примера временной диаграммы [Задержка веб-сайта]

0 голосов
/ 24 августа 2015

Здесь обсуждаются различные подходы к схематическому представлению многопоточности здесь . Окончательная форма диаграммы выглядит вполне подходящей для визуализации синхронизации с помощью ManualResetEvents.

...