线程池处理 多个任务

来源:互联网 发布:天猫双11数据分析 编辑:程序博客网 时间:2024/05/20 04:28
ThreadPoolExecutor executorService = new ThreadPoolExecutor(3, 5,
                    1, TimeUnit.SECONDS, new LinkedBlockingDeque<Runnable>());
//循环处理 子任务
            for (int i = 0; i < partitions.size(); i++) {
                final int k = i;
                executorService.execute(new Runnable() {

                    @Override
                    public void run() {
                        String sql = "select * from " + tableName
                                + " partition(" + partitions.get(k) + ")";
                        exportOracleData(sql, partitions.get(k));
                    }
                });
            }

            executorService.shutdown();

//将子线程加入到主线程,即主线程等待子线程

            while (executorService.getPoolSize() != 0)
                ;
原创粉丝点击