Dreaming about this. It is very flexible. E.g. it's possible to emulate (blocking) function calls with tasks. Many->One : gather results One->Many : dispatch worker Note a misconception: a worker isn't necessary about a CPU resource. It can be just as wel be managing/using some other resource, e.g. some process that evolves over time.