public class ThreadPoolTest {
public static void main(String[] args) {
BlockingQueue<Runnable> queue = new ArrayBlockingQueue<Runnable>(10000) ;
System.err.println(Runtime.getRuntime().availableProcessors());
ExecutorService executor = new ThreadPoolExecutor(
Runtime.getRuntime().availableProcessors(),//核心线程池大小,开启多少个线程
20,//最大线程池大小
120L, //线程池中超过corePoolSize数目的空闲线程最大存活时间;可以allowCoreThreadTimeOut(true)使得核心线程有效时间
TimeUnit.SECONDS, //keepAliveTime时间单位
queue) ;//阻塞任务队列
for(int i=0;i<100;++i){
executor.execute(new MessageTask(i+""));
}
}
}
public class MessageTask implements Runnable {
private String message ;
public MessageTask(String message) {
this.message = message;
}
@Override
public void run() {
System.out.println(Thread.currentThread().getName()+"---------->"+message);
}
}
总结:1. 类似ThreadPoolExecutor的还有 newCachedThreadPool、newFixedThreadPool、newScheduledThreadPool 和newSingleThreadExecutor;
参考文件:http://cuisuqiang.iteye.com/blog/2019372
未完待续....