业务场景:
如查一个数据集合,第一页至第一百页,返回总页数的总结集,然后导出。
一次需要limit 0 10000,这样,一个SQL查询出非常慢。
但用100个线程,一个线程只查limit0 10 就非常快了,
利用多线程的特性,返回多个集合,在顺序合并成总集合。
下面是concurrent.Future 例子
concurrent.Callable
package com.test.thread;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
/**
* Future<List<User>>
*
* 应用场景 :1.多线程,每个线程平均任务耗时一样
* 2.需要顺序返回的
*
* 顺序返回,如多个分页,但第一页需要先返回
*
* @author 汪兴安
*
*/
public class ThreadTest {
/**
* 定义线程池
*/
public static ExecutorService executos = Executors.newFixedThreadPool(5);
public static void main(String[] args) {
/**
* 定义集合装结果集
*/
List<User> totalList = new ArrayList<User>();
/**
* 定义 Future泛型的集合对象,装多线程的,返回信息
*/
List<Future<List<User>>> list = new ArrayList<Future<List