title: Is there a way to put tasks back in the executor queue
body: <p>I have a series of tasks (i.e. <code>Runnable</code>s) to be executed by an <code>Executor</code>.<br>
  Each task requires a certain condition to be valid in order to proceed. I would be interested to know if there is a way to somehow configure <code>Executor</code> to move tasks in the end of the queue and try to execute them later when the condition would be valid and the task be able to execute and finish.<br>
  So the behavior be something like:  </p>
  
  <ol>
  <li><code>Thread-1</code> take tasks from queue and <code>run</code> is called</li>
  <li>Inside <code>run</code> the condition is not yet valid</li>
  <li>Task stops and <code>Thread-1</code> places task in the end of the queue and
  gets next task to execute</li>
  <li>Later on <code>Thread-X</code> (from thread pool) picks task again from queue condition is valid
  and task is being executed</li>
  </ol>