固定线程数的多线程查询

现在有个需求,要提高查询性能,采用多线程

但我知道多线程是void run 那怎么返回我要查询的数据呢?

而且查询的东西不能线程里串掉。

哪位大侠给个例子

:D 可以看下jdk自带的CompletionServic+ExecutorService或者google-guava工具包的ListenableFuture以及MoreExecutors等工具类,如果有produtor-consumer需求的话也可以考虑java.util.concurrent下的BlokingQueue实现~

可以改为实现Callable接口,可参考ExecutorService线程池..
都是jdk自带的,google下吧,一搜一大把...

这个3句话2句话说不清楚的。

可以借鉴android( Handler Message Looper)的思想

首先你得有接收查询返回数据的容器类, 假设为 DataContainer.java
其次你得有处理最终查询完成后数据的类, 假设为 DataProcesser.java
最后就是你的数据查询线程类,假设为 DataThread.java.

你可以同时启动 N 个 DataThread.java类的实例进行数据查询,每个线程都将
查询得到的数据放入 DataContainer.java 的容器中。

另外DataProcesser.java必须与数据查询线程同时启动,但是在所有的查询线程
执行完成前被阻塞,你的每个查询线程数据查询完成后都检测一下其他线程的工作情况,
如果当前线程是最后一个完成工作的线程就唤醒 数据处理线程DataProcesser.java

直接用 LINQ 呗