Split Join : You want to start multiple flows ex. BackgroundCheck, EmploymentCheck etc. This is not based on a Page list, you need to specify all Flows to start in configuration.
Another Example : Work item needs approval from two different teams to continue further. So you can select two different flows and route the flows to two different workbasket/ worklist to get approval for the work item. The main flow waits for the split join flows to finish, you can either stop the main flow till both the flows ends or either of the flow end.
Split for Each : You have one flow, let's say Approval and you want to run this flow for all elements in Page list to assign to different approvers. So this shape will start multiple instances of same flow based on number of elements in Page list. You have to specify one flow name and page list name in configuration.
Work parties of a work item needs to confirm their acceptance with the case which is being processed. So there will be one flow which will have the assignments to record the acceptance of parties. Now we have to initiate or start this flow for each user or work party and needs to record their input. So here you will mention the work parties page list and the flow name which executes for each work party. Like split join here you can have join option Any, All and in addition to that Iterate option which initiates flows to parties one after the other.
You use the Split Join shape to call multiple independent processes that operate in parallel and then later rejoin. For example,a mortgage application process may require that a user validates the home buyer's credit history. At the same time,another user must perform a title search. Both of these processes are unrelated and can be performed in sub processes that proceed independently and in parallel. When the sub processes are complete,the main mortgage application process can continue. This is similar to a parallel process in the case life cycle — when all the processes in a stage are completed,the case enters the next stage or is resolved. However,the Split Join shape gives you the flexibility to use join conditions that determine when the primary process can continue. The join condition may iterate over a when condition or a count to determine when to resume the flow. For instance,a Split Join may include three separate approval sub processes. You can specify that only two of the three approvals must be completed before resuming the main flow.
Split For Each:
A Split For Each shape allows you to run one sub process multiple times by iterating through a set of records stored in a page list or page group. When the items on the list have been processed,the main flow continues. For example,you can use a Split For Each to iterate over a list of vendors and send a quote request from each vendor on the list. Like the Split Join,you can use a join condition to control when the primary process resumes. If you use an iterate join condition,you can start flows for elements of the Page Group or Page List property one by one,and configure testing conditions to determine whether to continue.