When an instance reaches a Split gateway, the original instance immediately flows to the corresponding Join gateway.
If the Generate Independent Copies property of the Split gateway is selected, the Split gateway creates a copy of the instance for each of the threads of the Split-Join circuit. If any of the threads modifies the instance data of the copies the other copies do not have access to the modified data. When the instance arrives to the Join gateway the Engine runs the associated PBL-Method, generally this method merges the data in the different copies and copies it to the original instance.
If the Generate Independent Copies property of the Split gateway is not selected, the Engine tries to run the threads simultaneously. If one of the threads modifies the instance data the Engine locks the instance, so if another thread needs to access the instance data it has to wait until the Engine unlocks it. When the instance arrives to the Join gateway the Engine runs the associated PBL-Method. Because all the threads use the original instance it is not necessary to merge data in the Join gateway.