之前一直没有遇到过大批量数据入库的场景,所以一直没有思考过在大量数据的情况下单线程插入和多线程插入的性能情况。今天在看一个项目源代码的时候发现使用了多线程insert操作。
于是简单的写了一个测试程序来测试一批数据在N个线程下的insert情况。
public class ThreadImport {
private String url="jdbc:oracle:thin:@localhost:1521:orcl";
private String user="cmis";
private String password="cmis";
public Connection getConnect(){
Connection con = null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
con=DriverManager.getConnection(url, user, password);
} catch (Exception e) {
e.printStackTrace();
}
return con;
}
public void multiThreadImport( final int ThreadNum){
final CountDownLatch cdl= new CountDownLatch(ThreadNum);
long starttime=System.currentTimeMillis();
for(int k=1;k<=Thread