Perhaps the best way to document this is: "gulp (orchestrator) works with the highest possible concurrency after taking into account all the specified dependencies."
So, in your scenario, c and d actually execute "in parallel"? Well, yes and no. Since JavaScript is single-threaded, technically the processor executes either c or d, but not both. Gulp (orchestrator) will start it, wait for it to finish, then run both c and d, and wait for both to finish, then run b.
If tasks c and d are generally asynchronous, you will see that both are running at the same time. (Note that Gulp's temporary outputs are intertwined.) If tasks are completely synchronized, technically they wonβt run in parallel ... just because JavaScript is single-threaded.
The maximum possible concurrency, taking into account all the restrictions you specify.
source share