The thread split and thread merge patterns allow a process to spawn a specific number of threads and also consume a number of tokens. The thread split pattern is supported by a multi-instance activity with the specified number of instances. Alternatively, it can also be supported by specifying the number of tokens on the outgoing sequence flow from a task. The thread merge pattern is supported by the start quantity attribute on the task. This will ensure that a specific number of tokens must arrive for the task to start. In this example, the request for proposal is sent to all suppliers in parallel. However, the immediate next activity has a start quantity specified as three, which implies that it can execute only after three tokens arrive on it. This is one way of achieving tread split and merge.