package website.thread;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
public class MyThreadPool {
private static ThreadPoolExecutor executor;
static {
executor = new ThreadPoolExecutor(2, 10, 3, TimeUnit.MILLISECONDS, new ArrayBlockingQueue<>(1));
}
public static void main(String[] args) {
executor.execute(new Runnable() {
@Override
public void run() {
long stratTime = System.currentTimeMillis();
System.out.println("线程:" + Thread.currentThread().getName() + "开始执行");
try {
Integer sleepTime = 10000;
System.out.println(sleepTime);
Thread.sleep(sleepTime);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("线程:" + Thread.currentThread().getName() + "执行了" + (stratTime - System.currentTimeMillis()));
}
});
executor.execute(new Runnable() {
@Override
public void run() {
long stratTime = System.currentTimeMillis();
System.out.println("线程:" + Thread.currentThread().getName() + "开始执行");
try {
Integer sleepTime = 10000;
System.out.println(sleepTime);
Thread.sleep(sleepTime);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("线程:" + Thread.currentThread().getName() + "执行了" + (stratTime - System.currentTimeMillis()));
}
});
executor.execute(new Runnable() {
@Override
public void run() {
long stratTime = System.currentTimeMillis();
System.out.println("线程:" + Thread.currentThread().getName() + "开始执行");
try {
Integer sleepTime = 10000;
System.out.println(sleepTime);
Thread.sleep(sleepTime);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("线程:" + Thread.currentThread().getName() + "执行了" + (stratTime - System.currentTimeMillis()));
}
});
}
}