Dataflow programming for Java - High performance (parallel) execution of tasks according to their dependencies