java多线程处理数据表格
问题描述: 现在需要处理一个excel表格,数据量几百条,我使用多线程处理
思路描述:
使用import java.util.concurrent.ExecutorService;
和import java.util.concurrent.Executors;
类实现
核心代码:
ExecutorService e = Executors.newFixedThreadPool(10);
e.submit(new Runnable() {
@Override
public void run() {
Long id = Thread.currentThread().getId();
logger.info("当前线程:" + id);
try {
gr(inpath, outpath, prefix1);
} catch (Exception e) {
logger.error("----------转化错误,请参照说明文档-------");
e.printStackTrace();
}
}
});
e.submit(new Runnable() {
@Override
public void run() {
Long id = Thread.currentThread().getId();
logger.info("当前线程:" + id);
try {
fr(inpath, outpath, prefix2, prefix3);
} catch (IOException e) {
logger.error("----------转化错误,请参照说明文档-------");
e.printStackTrace();
}
}
});
e.submit(new Runnable() {
@Override
public void run() {
Long id = Thread.currentThread().getId();
logger.info("当前线程" + id);
try {
gandf(inpath, outpath, prefix1, prefix2, prefix3);
} catch (IOException e) {
logger.error("----------转化错误,请参照说明文档-------");
e.printStackTrace();
}
}
});
测试结果: 3个线程时间分别是:7秒,12秒,和12秒,最终程序执行一共耗时13秒,说明进行和并行计算
阅读次数: 本文累计被阅读 1000000 次