All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.deep.crow.task.parallel.SupplyTask Maven / Gradle / Ivy

package com.deep.crow.task.parallel;

import com.deep.crow.multi.Multi;
import com.deep.crow.multi.MultiHelper;
import java.util.concurrent.ExecutorService;
import java.util.function.Supplier;

/**
 * 异步计算
 *
 * @author Create by liuwenhao on 2022/4/11 11:48
 */
class SupplyTask implements ParallelTask {

  int order;
  Supplier supplier;
  ExecutorService executorService;

  public SupplyTask(int order, Supplier supplier, ExecutorService executorService) {
    this.order = order;
    this.supplier = supplier;
    this.executorService = executorService;
  }

  public SupplyTask(Supplier supplier, ExecutorService executorService) {
    this.supplier = supplier;
    this.executorService = executorService;
  }

  @Override
  public int order() {
    return order;
  }

  @Override
  @SuppressWarnings("unchecked")
  public  Multi assembling() {
    return (Multi) MultiHelper.supplyAsync(executorService, supplier);
  }
}