// Path: src/main/java/com/baidu/unbiz/multitask/common/TaskPair.java
// public class TaskPair extends Pair<String, Object> {
// 
//     public TaskPair() {
//     }
// 
//     public TaskPair(String taskName, Object param) {
//         this.field1 = taskName;
//         this.field2 = param;
//     }
// 
//     public TaskPair wrap(String taskName, Object param) {
//         return new TaskPair(taskName, param);
//     }
// }
// 
// Path: src/main/java/com/baidu/unbiz/multitask/forkjoin/ForkJoin.java
// public interface ForkJoin<PARAM, RESULT> {
// 
//     List<PARAM> fork(PARAM param);
//     RESULT join(List<RESULT> results);
// }
// 
// Path: src/main/java/com/baidu/unbiz/multitask/policy/ExecutePolicy.java
// public interface ExecutePolicy {
//     /**
//      * @return 任务超时时间，单位毫秒
//      */
//     long taskTimeout();
// }
// 
// Path: src/main/java/com/baidu/unbiz/multitask/task/thread/MultiResult.java
// public interface MultiResult {
// 
//     /**
//      * 结果数据存储
//      *
//      * @param key
//      * @param value
//      */
//     <E> void putResult(String key, E value);
// 
//     /**
//      * 获取并行执行的数据结果
//      *
//      * @param taskName
//      *
//      * @return fetcher对应的数据结果
//      */
//     <E> E getResult(String taskName);
// 
//     /**
//      * 获取所有结果
//      *
//      * @return 所有并行结果
//      */
//     Map<String, Object> getResult();
// 
//     /**
//      * 资源清理，尽早释放，非必须
//      */
//     void clean();
// 
// }


import java.util.List;
import com.baidu.unbiz.multitask.common.TaskPair;
import com.baidu.unbiz.multitask.forkjoin.ForkJoin;
import com.baidu.unbiz.multitask.policy.ExecutePolicy;
import com.baidu.unbiz.multitask.task.thread.MultiResult;
package com.baidu.unbiz.multitask.task;



/**
 * 任务并行执行资源池，提供资源和计算模型的封装等
 */
public interface ParallelExePool {

    String TASK_PAIRS = "taskPairs";

    MultiResult submit(List<TaskPair> taskPairs);

    MultiResult submit(TaskPair... taskPairs);

// Path: src/main/java/com/baidu/unbiz/multitask/common/TaskPair.java
// public class TaskPair extends Pair<String, Object> {
// 
//     public TaskPair() {
//     }
// 
//     public TaskPair(String taskName, Object param) {
//         this.field1 = taskName;
//         this.field2 = param;
//     }
// 
//     public TaskPair wrap(String taskName, Object param) {
//         return new TaskPair(taskName, param);
//     }
// }
// 
// Path: src/main/java/com/baidu/unbiz/multitask/forkjoin/ForkJoin.java
// public interface ForkJoin<PARAM, RESULT> {
// 
//     List<PARAM> fork(PARAM param);
//     RESULT join(List<RESULT> results);
// }
// 
// Path: src/main/java/com/baidu/unbiz/multitask/policy/ExecutePolicy.java
// public interface ExecutePolicy {
//     /**
//      * @return 任务超时时间，单位毫秒
//      */
//     long taskTimeout();
// }
// 
// Path: src/main/java/com/baidu/unbiz/multitask/task/thread/MultiResult.java
// public interface MultiResult {
// 
//     /**
//      * 结果数据存储
//      *
//      * @param key
//      * @param value
//      */
//     <E> void putResult(String key, E value);
// 
//     /**
//      * 获取并行执行的数据结果
//      *
//      * @param taskName
//      *
//      * @return fetcher对应的数据结果
//      */
//     <E> E getResult(String taskName);
// 
//     /**
//      * 获取所有结果
//      *
//      * @return 所有并行结果
//      */
//     Map<String, Object> getResult();
// 
//     /**
//      * 资源清理，尽早释放，非必须
//      */
//     void clean();
// 
// }


// Path: src/main/java/com/baidu/unbiz/multitask/task/ParallelExePool.java
import java.util.List;
import com.baidu.unbiz.multitask.common.TaskPair;
import com.baidu.unbiz.multitask.forkjoin.ForkJoin;
import com.baidu.unbiz.multitask.policy.ExecutePolicy;
import com.baidu.unbiz.multitask.task.thread.MultiResult;

package com.baidu.unbiz.multitask.task;



/**
 * 任务并行执行资源池，提供资源和计算模型的封装等
 */
public interface ParallelExePool {

    String TASK_PAIRS = "taskPairs";

    MultiResult submit(List<TaskPair> taskPairs);

    MultiResult submit(TaskPair... taskPairs);

    MultiResult submit(ExecutePolicy policy, TaskPair... taskPairs);