代码:
-
package com.bob.test;
-
import java.util.concurrent.ExecutorService;
-
import java.util.concurrent.Executors;
-
public class ExecutorServiceTest {
-
static void run(ExecutorService threadPool){
-
for(int i=1 ; i < 5; i++ ){
-
final int taskId = i;
-
threadPool.execute(new Runnable(){
-
@Override
-
public void run() {
-
for(int i = 1; i < 5; i++){
-
try {
-
Thread.sleep(20);
-
} catch (Exception e) {
-
e.printStackTrace();
-
}
-
System.out.println("第"+taskId+"次任务的第"+i+"次执行");
-
}
-
}
-
});
-
}
-
threadPool.shutdown(); // 任务执行完毕,关闭线程池
-
}
-
public static void main(String args[]){
-
// 创建可以容纳3个线程的线程池
-
ExecutorService fixExecutorService = Executors.newFixedThreadPool(3);
-
// 线程池的大小会根据执行的任务数动态分配
-
ExecutorService cachedExecutorService = Executors.newCachedThreadPool();
-
// 创建单个线程的线程池,如果当前线程在执行任务时突然中断,则会创建一个新的线程替代它继续执行任务
-
ExecutorService singleExecutorService = Executors.newSingleThreadExecutor();
-
// 效果类似于Timer定时器
-
ExecutorService scheduleExecutorService = Executors.newScheduledThreadPool(3);
-
run(fixExecutorService);
-
// run(cachedExecutorService);
-
// run(singleExecutorService);
-
// run(scheduleExecutorService);
-
}
-
}
&