问题描述
同步二十万条数据,我想使用多线程同时进行, 但为什么我使用线程池同步数据的效率比我显示创建线程更慢呢?
这是显示创建线程:
for (int i = 0; i < studentIdList.size(); i++) {
List<String> studentIds = studentIdList.get(i);
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
for (String per : studentIds) {
//数据库操作
}
}
}, "线程" + i);
thread.start();
}
//这是使用线程池创建
ExecutorService exec= Executors.newCachedThreadPool();
for (int i = 0; i < studentIdList.size(); i++) {
List<String> studentIds = studentIdList.get(i);
exec.execute(new Runnable() {
@Override
public void run() {
for (String per : studentIds) {
//数据库操作
}
}
});
exec.shutdown();
}
不应该是使用了线程池 效率更高更快吗,为什么反而显示创建线程保存到数据库更快呢
首先你得保证你的测试代码是正确的。。。