多线程ExecutorService使用实例

 

 

public interface ListCollectionCallback<E extends Object> {
	public void call(List<E> collection);
}

 

 

实现Runnable,处理业务逻辑

 

public class ProcessDataFutureCallable implements Runnable {

	@Override
	public void run() {
		//处理业务逻辑
	}

}

  多线程异步处理业务,通过future同步返回

 

 

	final List<Future<?>> dataList = new ArrayList<Future<?>>();	
        final ExecutorService exePool = Executors.newFixedThreadPool(threadNum);
		ListCollectionCallback<String> callable = new ListCollectionCallback<String>() {
			@Override
			public void call(List<String> collection) {
				ProcessDataFutureCallable future=new ProcessDataFutureCallable();
				dataList.add(exePool.submit(future));
			}
		};
		//剥离业务调用callable
		CollectionUtils.splitCollectionHandle(callable);
		for (Future<?> future : dataList) {
			try {
				future.get();
			} catch (InterruptedException e) {
				logger.warn("线程异常中断", e);
			} catch (ExecutionException e) {
				logger.warn("线程异常中断", e);
			} catch (Exception e) {
				logger.warn("发生异常", e);
			}
		}
		exePool.shutdown();

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值