解决方案 »
- EJB3.0事务问题
- 最初连接数据库问题
- 求解关于aop的JoinPoint的问题.
- 请教如何动态调用XFire
- java高手我求求你们拉100分送
- WEBloic8.1如何调用crystal reports10的水晶报表
- 浏览器提示:不支持嵌入式框架,或被配置为不显示嵌入式框架,请问怎么显示呀?
- TOMCAT,JSP的日志这样的错误提示是什么意思?
- 十分有用的代码:JDBC连接DB2、Oracle、MySQL、PostgreSQL,并取当前时间
- 去华为作j2ee有前途么
- spring mvc 注解:No bean named 'userBiz' is defined
- weblogic启动后无法访问控制台
private Biomini bio; public BioProcessor(Biomini bio) {
this.bio = bio;
} @Override
public Boolean call() {
// 转码操作...
// 通过转码后得到对比模板...
// 进行对比 ... return true;// 最后返回对比结果true或false
}
}调用案例:public static void main(String[] args) {
// 线程池参数自己研究下
ExecutorService executor = new ThreadPoolExecutor(3, 10, 0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(200)); // 你的Biomini请求列表
List<Biomini> bioList = new ArrayList<Biomini>(); // ... 经过一系列操作 .... // 加入到线程池获得<Bio对象,Future>对应关系
Map<Biomini, Future<Boolean>> futureMap = new HashMap<Biomini, Future<Boolean>>();
for (Biomini bio : bioList) {
futureMap.put(bio, executor.submit(new BioProcessor(bio)));
} // 都加入线程池后,再获取结果集
for (Map.Entry<Biomini, Future<Boolean>> entry : futureMap.entrySet()) {
// 如果匹配上的操作
try {
if (entry.getValue().get()) {
// 通过entry.getKey()得到对应的Biomini对象
}
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
}
}
瓶颈在哪,那一个方法耗时最长,消耗的资源是cpu还是硬盘io
瓶颈在哪,那一个方法耗时最长,消耗的资源是cpu还是硬盘io就是循环那,由于指纹特征集数据量大,字段常常都是byte数组有几十万,所以在对比的时候想用线程去对比
瓶颈在哪,那一个方法耗时最长,消耗的资源是cpu还是硬盘io就是循环那,由于指纹特征集数据量大,字段常常都是byte数组有几十万,所以在对比的时候想用线程去对比你还是没有回答我的问题,消耗的是cpu还是硬盘如果你是cpu消耗的比较多,多线程是没用的,如果是硬盘消耗比较多就可以用多线程
我看你这比较的话,应该是消耗cpu的操作,你上多线程是没用的。要么优化算法,要么就多搞几台机器