使用CountDownLatch多线程执行任务
- 介绍
- 使用CountDownLatch多线程执行任务
介绍
首先我是很抗拒使用java单进程去做这些批量任务处理(hadoop生态除外,超大数据的领头老大),或者做一写简单的etl工作,但是耐不住还是会有人要求使用java做一些批量任务。如下是CountDownLatch的一个简单工具类
使用CountDownLatch多线程执行任务
package info.lostmylife;
import org.apache.commons.collections.CollectionUtils;
import java.util.linkedList;
import java.util.List;
import java.util.concurrent.*;
import java.util.stream.Collectors;
public class BatchThreadUtils {
private final static int MAX_THREAD_POOL = 10;
private static final ExecutorService executorService = Executors.newFixedThreadPool(MAX_THREAD_POOL);
public interface ThreadInterface {
Object run() throws InterruptedException;
}
public static synchronized List