I am yet to find the perfect way to diagrammatically represent the overall threading architecture for a system (using UML or otherwise).
I am after a diagramming technique that would show all the threads in a given system and how they interact with each other. There are a few similar questions – Drawing Thread Interaction, UML Diagrams of Multithreaded Applications and Intuitive UML Approach to Depict Threads but they don’t fully answer my question.
What are some of the techniques that you’ve found useful to depict the overall threading architecture for a system?
What are some of the techniques that you’ve found useful to depict the overall threading architecture for a system?
By not treating it special. Elements in the architecture send messages to one another; if that’s across a thread boundary (or even a system boundary) doesn’t really matter from an architectural perspective.
As far as implementation goes, it doesn’t matter. Implementation is done at the module level. Black Box A presents some interface and consumes some other Black Box. Make a note that the interface it consumes or provides is required to be (non)blocking and/or threadsafe and be on your way.
Otherwise, consider it a design smell if those threading details are leaking through your abstractions.
1