title: Spring batch 2.1.8 multiple steps execution in parallel has limitation
body: <p>I am trying to execute multiple steps in parallel using a single Job in Spring batch. Here is how my configuration looks.</p>
  
  <pre><code>&lt;job id="gmegdc1" xmlns="http://www.springframework.org/schema/batch" &gt;
          &lt;split id="splitStep" task-executor="taskExecutor"&gt;
              &lt;flow&gt;
                  &lt;step id="step1" parent="simpleStep1"&gt;
                      &lt;tasklet ref="gdcTasklet1" task-executor="taskExecutor1" throttle-limit="6" /&gt;          
                  &lt;/step&gt;
              &lt;/flow&gt;
              &lt;flow&gt;
                  &lt;step id="step2" parent="simpleStep2"&gt;
                      &lt;tasklet ref="gdcTasklet2" task-executor="taskExecutor2" throttle-limit="6" /&gt;
                  &lt;/step&gt;
              &lt;/flow&gt;
              &lt;flow&gt;
                  &lt;step id="step3" parent="simpleStep3"&gt;
                      &lt;tasklet ref="gdcTasklet3" task-executor="taskExecutor3" throttle-limit="6" /&gt;
                  &lt;/step&gt;
              &lt;/flow&gt;
              &lt;flow&gt;
                  &lt;step id="step4" parent="simpleStep4"&gt;
                      &lt;tasklet ref="gdcTasklet4" task-executor="taskExecutor4" throttle-limit="6" /&gt;
                  &lt;/step&gt;
              &lt;/flow&gt;
          &lt;/split&gt;    
      &lt;/job&gt;
  
  &lt;bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor"&gt;
          &lt;property name="corePoolSize" value="25" /&gt;                  
          &lt;property name="maxPoolSize" value="25" /&gt;        
      &lt;/bean&gt;
  
  &lt;bean id="taskExecutor1" class="org.springframework.core.task.SimpleAsyncTaskExecutor"/&gt;
      &lt;bean id="taskExecutor2" class="org.springframework.core.task.SimpleAsyncTaskExecutor"/&gt;
      &lt;bean id="taskExecutor3" class="org.springframework.core.task.SimpleAsyncTaskExecutor"/&gt;
      &lt;bean id="taskExecutor4" class="org.springframework.core.task.SimpleAsyncTaskExecutor"/&gt;
  </code></pre>
  
  <p>I wanted to run 6 threads for each step. With this configuration every time I start the job only 8 threads in different combination of steps were running at a time. Due to this some of the steps were not getting executed and also I am getting the potential of all threads running. Not sure what is going wrong here.</p>