Can anyone recommend any methodology/software for modeling multi-threaded applications?
As part of any application design, there is always a need to do modeling using UML. However, a single thread design is usually assumed in the initial modeling. I do not know of how I can model multi-threaded applications.
Multi-threaded applications are best modeled in UML using either state machines of activity diagrams.
State machines have composite states with “orthogonal” regions that have states that are active in parallel, execute in parallel and can react to events in parallel.
Activity diagrams have fork and join nodes that create parallel execution flows inside the activity.
Each one of these diagrams has pros and cons. If your system is reactive I would surely go for a state machine. If you are developing more of an information system, activity diagrams are better.