/**
* corePoolSize:池中所保存的线程数
* maximnumPoolSize:池中允许最大线程数
* keepAliveTime:当线程数量大于corePoolSize值时,在没有超过指定的时间内,
* 不从线程池中将空闲线程删除,如果超过此时间单位,则删除
* unit:keepAliveTime参数时间单位
* workQueue:此队列保持execute方法提交的Runnable任务
* 使用ArrayBlockingQueue,LinkedBlockingQueue时,初始容量+maximnumPoolSize 应大于等于线程数,否则会报错
*/
public class TestThreadPoolExcutor {
public static void main(String[] args) throws InterruptedException {
ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(5,10,2,TimeUnit.SECONDS,new LinkedBlockingQueue<Runnable>());
for(int i=0;i<10;i++){
Runnable runnable = new Runnable() {
@Override
public void run() {
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("执行任务");
}
};
threadPoolExecutor.execute(runnable);
}
System.out.println("==poolSize=="+threadPoolExecutor.getPoolSize());
System.out.println("==corePoolSize=="+threadPoolExecutor.getCorePoolSize());
System.out.println("==queueSize=="+threadPoolExecutor.getQueue().size());
Thread.sleep(5000);
System.out.println("==poolSize222=="+threadPoolExecutor.getPoolSize());
System.out.println("==corePoolSize222=="+threadPoolExecutor.getCorePoolSize());
System.out.println("==queueSize222=="+threadPoolExecutor.getQueue().size());
System.out.println("==queueSize222=="+threadPoolExecutor.getMaximumPoolSize());
threadPoolExecutor.shutdown();
}
}
java并发编程-ThreadPoolExcutor
最新推荐文章于 2024-02-09 15:04:22 发布