Tomcat 请求处理分析

Java线程池构成分析

package com.jt.thread;
import java.util.concurrent.*;
import java.util.concurrent.atomic.AtomicLong;
public class ThreadPoolTests {
public static void main(String[] args) {
int corePoolSize = 2;
int maximumPoolSize = 3;
long keepAliveTime = 60;
TimeUnit unit = TimeUnit.SECONDS;
BlockingQueue<Runnable> workQueue = new ArrayBlockingQueue<>(1);
RejectedExecutionHandler handler = new ThreadPoolExecutor.CallerRunsPolicy();
ThreadFactory factory = new ThreadFactory() {
private String namePrefix = "cgb2105-Thread-";
private AtomicLong atomicLong = new AtomicLong(1);
@Override
public Thread newThread(Runnable r) {
return new Thread(r,namePrefix+atomicLong.getAndIncrement());
}
};
ThreadPoolExecutor pool = new ThreadPoolExecutor
(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue,factory,handler);
pool.execute(new Runnable() {
@Override
public void run() {
String tName=
Thread.currentThread().getName();
System.out.println(tName+"->任务1");
try{Thread.sleep(5000);}catch (Exception e){}
}
});
pool.execute(new Runnable() {
@Override
public void run() {
String tName=
Thread.currentThread().getName();
System.out.println(tName+"->任务2");
try{Thread.sleep(5000);}catch (Exception e){}
}
});
pool.execute(new Runnable() {
@Override
public void run() {
String tName=
Thread.currentThread().getName();
System.out.println(tName+"->任务3");
try{Thread.sleep(5000);}catch (Exception e){}
}
});
pool.execute(new Runnable() {
@Override
public void run() {
String tName=
Thread.currentThread().getName();
System.out.println(tName+"->任务4");
try{Thread.sleep(5000);}catch (Exception e){}
}
});
pool.execute(new Runnable() {
@Override
public void run() {
String tName=
Thread.currentThread().getName();
System.out.println(tName+"->任务5");
}
});
pool.shutdown();
}
}