This is more or less exactly what it says on the tin.
Let's say, for example, that I have two TP programs, named ProgA and ProgB respectively.
ProgA dispenses an item onto the floor while progB checks to make sure the container where the item is being put into is not full.
They both use different motors, and different IO entirely, and are thus "thread safe"
Now let's say I have a third program in TP, CallConcurrent, which only calls ProgA and ProgB, but does so in a way that they both execute more or less synchronously.
What does the CallConcurrent program look like?