package ExtendThreadPoolExecutor;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
public class ExThreadPool {
public static class MyTask implements Runnable{
public String name;
public MyTask(String name){
this.name=name;
}
@Override
public void run() {
System.out.println("正在执行"+"Thread ID:"+Thread.currentThread().getId()
+",Task Name:"+name);
}
}
public static void main(String[] args) throws InterruptedException {
ExecutorService es=new ThreadPoolExecutor(5,5,0L,TimeUnit.SECONDS,
new LinkedBlockingQueue<Runnable>()){
@Override
protected void beforeExecute(Thread t, Runnable r) {
System.out.println("准备执行:"+((MyTask)r).name);
}
@Override
protected void afterExecute(Runnable r, Throwable t) {
System.out.println("执行完成:"+((MyTask)r).name);
}
@Override
protected void terminated() {
System.out.println("线程退出");
}
};
for(int i=0;i<5;i++){
MyTask task=new MyTask("TASK-GEYM"+i);
es.execute(task);
Thread.sleep(10);
}
es.shutdown();
}
}
java并发-扩展ThreadPoolExecutor
最新推荐文章于 2023-10-23 23:50:46 发布