详细信息查看另一篇文章
//1.在类的开始创建线程池,指定核心线程数,最大线程数,队列满后的存活时间,对列数,队列满后的拒绝策略
ThreadPoolExecutor pool = new ThreadPoolExecutor(
50, //coreSize 核心线程数
200, //MaxSize 最大线程数
360, //60 存活时间
TimeUnit.SECONDS, 单位(秒)
// new ArrayBlockingQueue(3) //指定一种队列 有界队列
new linkedBlockingQueue(1000) //对列数
, new ThreadPoolExecutor.CallerRunsPolicy() //拒绝策略(直接由提交任务者执行这个任务)
);
//2.创建线程(将线程放入线程池中)
class downAgreementThread implements Runnable{
private Person person; //参数
public downAgreementThread(Person person){
this.person=person;
}
@Override
public void run() {
try {
downAgreement(person);
} catch (IOException e) {
e.printStackTrace();
}
}
}
//3.执行任务
pool.execute(new downAgreementThread(person));