java中使用连接池的写法

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

int each_thread = 5000;#每个线程处理数据数
int count = 500;#总数据量

ExecutorService executor = null;
int thread_num = count/each_thread +1;#线程数
int action = count/thread_num+1;#每个线程处理数据数
try{
  executor = Executors.newFixedThreadPool(thread_num);
  for(int i=0;i<thread_num;i++){
    final int begin_num = i*action;#用于limit分页处理
    Runnable runn = new Runnable() {
      @Override
      public void run() {
        action(begin_num);
      }
    };
    System.out.print("t"+i+"启动 ,");
    executor.execute(runn);
  }
  System.out.println();
} catch (Exception e) {
  e.printStackTrace();
}finally{
  executor.shutdown();
  while(true){
    if(executor.isTerminated()){
      break;
    }
    try {
      Thread.sleep(10000);
    } catch (InterruptedException e) {
      e.printStackTrace();
    }
  }
}

posted @ 2020-09-24 17:23  simplelifezp  阅读(171)  评论(0)    收藏  举报