title: Java Framework for managing Tasks
body: <p>my question is, whether there exists a framework in Java for managing and concurrently running Tasks that have logical dependencies.</p>
  
  <p>My Task is as follows:
  I have a lot of independent tasks (Let's say A,B,C,D...), They are implemented as Commands (like in Command pattern). I would like to have a kind of executor which will accept all these tasks and execute them in a parallel manner.
  The tasks can be dependent one on another (For example, I can't run C, Before I run A), synchronous or asynchronous.</p>
  
  <p>I would also like to incorporate the custom heuristics to affect the scheduler execution, for example if tasks A and B are CPU-intensive and C is, say, has high Memory consumption, It makes sense to run A and C in parallel, rather than running A and B. </p>
  
  <p>Before diving into building this stuff by myself (i'm thinking about java.util.concurrent + annotation based constraints/rules), I was wondering, if someone could point me on some project that could suit my needs.
  Thanks a lot in advance</p>