Fork-Join Queue
A Fork-Join Queue is a useful queuing model to incorporate in a queueing network where a job is to be split into more than one sub-jobs for separate processing before it is recombined and forwarded to the next queue. In a Fork-Join Queue, an entering job is decomposed to be serviced in parallel by a number of sibling queues.
For example, in a machine shop, a particular component being worked on may need to be disassembled and its parts processed separately before it is reassembled for further processing.

A job entering a Fork-Join Queue is split into sub-jobs by a forking process and then recombined by a joining process before exit.
Forking Process - A job is offered to two or more sibling queues for every job entering the Fork-Join Queue.
Joining Process - Once all the sub-jobs finish their service at each of the sibling queues, they are recombined and the job leaves the Fork-Join queue.
