Fork/Join

d_ForkJoinAcross

d_ForkJoinUp

 

Description

The Fork/Join elements have different modes of use, as follows:

To fork or split the flow into a number of concurrent flows
To join the flow of a number of concurrent flows
To both join and fork a number of incoming flows to a number of outgoing flows

 

These elements are used in both Activity and State Machine diagrams. With respect to State Machine diagrams, Forks and Joins are used as pseudo-states. Other pseudo-states include history states, entry points and exit points. Forks are used to split an incoming transition into concurrent multiple transitions leading to different target states. Joins are used to merge concurrent multiple transitions into a single transition leading to a single target. They are semantic inverses. To learn more about these individual elements see their specific topics.

Example Diagrams:

Description

Diagram

Fork or split the flow into a number of concurrent flows

Activity-ForkJoin2

 

Join the flow of a number of concurrent flows

Activity-ForkJoin1

 

Join and Fork a number of incoming flows to a number of outgoing flows

ActivityForkJoin3

 

 

Toolbox icon

c_ForkJoinAcross         c_ForkJoinUp

Learn more

Join

OMG UML Specification:

Fork
The OMG UML specification (UML Superstructure Specification, v2.1.1, p. 376) states:

A fork node is a control node that splits a flow into multiple concurrent flows... A fork node has one incoming edge and multiple outgoing edges.
 

Join
The OMG UML specification (UML Superstructure Specification, v2.1.1, p. 381-382) states:

A join node is a control node that synchronizes multiple flows... A join node has multiple incoming edges and one outgoing edge.