zoukankan      html  css  js  c++  java
  • 多线程

    import java.util.concurrent.CountDownLatch;
    
    public class ThreadTest {
        public static void main(String[] args) {
            ThreadTest ti=new ThreadTest();
            ti.multiThreadImport(1);
            ti.multiThreadImport(10);
            System.out.println("本机CPU数:"+Runtime.getRuntime().availableProcessors());
        }
        public void multiThreadImport(final int ThreadNum){
            final CountDownLatch cdl= new CountDownLatch(ThreadNum);
            long starttime=System.currentTimeMillis();
            for(int k=1;k<=ThreadNum;k++){
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        try {
                            System.out.println("多线程"+ThreadNum);
                            cdl.countDown();
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    }
                }).start();
            }
            try {
                cdl.await();
                long spendtime=System.currentTimeMillis()-starttime;
                System.out.println( ThreadNum+"个线程花费时间:"+spendtime);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

     多线程插入数据

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    import java.util.UUID;
    import java.util.concurrent.CountDownLatch;
    
    public class ThreadTest {
        static Connection conn;
        public void multiThreadImport( final int ThreadNum){
            final CountDownLatch cdl= new CountDownLatch(ThreadNum);
            long starttime=System.currentTimeMillis();
            for(int k=1;k<=ThreadNum;k++){
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                       // 获得连接
                    try {
                        conn=getConnect();
                    } catch (Exception e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                    //插入500/线程数条数据
                    for(int i=1;i<=10/ThreadNum;i++){
                        String uuid=UUID.randomUUID().toString().replace("-", "");
                        try {
                            //Statement statement = conn.createStatement();
                            PreparedStatement ps = conn.prepareStatement("insert into FILEINFO(id) values (?)");
                            //statement.executeUpdate(sql);
                            //ps.addBatch("insert into demo(name,adress) values('"+uuid+"','"+uuid+"')");
                            ps.setString(1, uuid);
                            ps.executeUpdate();
                            if(i%10==0){
                                ps.executeBatch(); //10条执行一次
                                System.out.println("INSERT into FILEINFO(id) values " + uuid);
                            }
                        } catch (SQLException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                                
                    }
                    cdl.countDown();
                }
            }).start();
        }
            try {
                cdl.await();
                long spendtime=System.currentTimeMillis()-starttime;
                System.out.println( ThreadNum+"个线程花费时间:"+spendtime);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
    
    
        }
    
        public Connection getConnect(){
            Connection con = null;
            String url = "";
            String user = "";
            String password = "";
            
            
             try {
                Class.forName("oracle.jdbc.driver.OracleDriver");
                if(MyFile.getInfo("d:/njdx.ini").length()>0){
                    for(int i=0;i<MyFile.getInfo("d:/njdx.ini").split(",").length;i++){
                        url = MyFile.getInfo("d:/njdx.ini").split(",")[0];//数据库连接地址
                        user = MyFile.getInfo("d:/njdx.ini").split(",")[1];//数据库用户名
                        password = MyFile.getInfo("d:/njdx.ini").split(",")[2];//数据库密码                    
                    }                
                }    
                con=DriverManager.getConnection(url, user, password);
            } catch (Exception e) {
                e.printStackTrace();
            }
             return con;
        }
        public static void main(String[] args) throws Exception {
            ThreadTest ti=new ThreadTest();
            ti.multiThreadImport(1);
            System.out.println("+++1个线程结束+++");
            ti.multiThreadImport(2);
            System.out.println("+++2个线程结束+++");
            ti.multiThreadImport(8);
            System.out.println("+++8个线程结束+++");
            ti.multiThreadImport(10);
            System.out.println("+++10个线程结束+++");
            System.out.println("笔记本CPU数:"+Runtime.getRuntime().availableProcessors());
       
        }
    }
  • 相关阅读:
    【转】十分钟了结MySQL information_schema
    【转】CentOS6.5下Redis安装与配置
    java知识点
    【转】STRING使用EQUALS方法和==分别比较的是什么
    【转】JVM性能调优监控工具jps、jstack、jmap、jhat、jstat、hprof使用详解
    【转】mybatis入门基础(六)----高级映射(一对一,一对多,多对多)
    【转】mybatis中的#和$的区别
    【转】HashMap
    【转】@Transactional事务几点注意
    关于PC端的密码框自动获取浏览器保存密码的问题[vue]
  • 原文地址:https://www.cnblogs.com/jassy/p/7239184.html
Copyright © 2011-2022 走看看