//有界队列
public static void ThreadPoolExecutorTest1() {
executor = new ThreadPoolExecutor(1,2,1000,TimeUnit.SECONDS,
new ArrayBlockingQueue(5),
Executors.defaultThreadFactory(),new ThreadPoolExecutor.AbortPolicy());
for(int i=0;i<5;i++) {
executor.execute(new T());
}
}
//无界队列
public static void ThreadPoolExecutorTest2() {
executor = new ThreadPoolExecutor(2,4,1000,TimeUnit.SECONDS,new LinkedBlockingQueue(),
Executors.defaultThreadFactory(),new ThreadPoolExecutor.DiscardPolicy());
for(int i=0;i<6;i++) {
executor.execute(new T());
}
}
//无缓冲等待队列
public static void ThreadPoolExecutorTest3(){
executor = new ThreadPoolExecutor(1, 2, 1000, TimeUnit.SECONDS, new SynchronousQueue(),
Executors.defaultThreadFactory(),new ThreadPoolExecutor.DiscardOldestPolicy());
for(int i=0;i<4;i++) {
executor.execute(new T());
}
}
//优先级阻塞队列
public static void ThreadPoolExecutorTest4() {
executor = new ThreadPoolExecutor(1,2,1000,TimeUnit.SECONDS,new PriorityBlockingQueue(),
Executors.defaultThreadFactory(),new ThreadPoolExecutor.CallerRunsPolicy());
for(int i=0;i<4;i++) {
executor.execute(new T());
}
}
public static class T implements Runnable{
public T() {
// TODO Auto-generated constructor stub
}
@Override
public void run() {
// TODO Auto-generated method stub
System.out.println(Thread.currentThread().getName());
}
}