code: private void createAndExecuteTasks(Executor executor, ProcedureFactory<BT> procedureFactory, T[] array)
      {
          this.procedures = new ArrayProcedureFJTask[this.taskCount];
          int sectionSize = array.length / this.taskCount;
          int size = this.taskCount;
          for (int index = 0; index < size; index++)
          {
              ArrayProcedureFJTask<T, BT> procedureFJTask = new ArrayProcedureFJTask<T, BT>(this, procedureFactory, array, index,
                      sectionSize, index == this.taskCount - 1);
              this.procedures[index] = procedureFJTask;
              executor.execute(procedureFJTask);
          }
      }
docs: Creates an array of ProcedureFJTasks wrapping Procedures created by the specified ProcedureFactory.