Arguably it can be better than blocking threads, which can waste precious time for synchronization. But if you design your code with precise timings, you can ensure that the different processors will complete their work and communicate their data at a precise time, thus saving code and time.
Harder to program of course.