public class TestFixedThreadPool {
public static void main(String[] args) {
ExecutorService executorService = Executors.newFixedThreadPool(3); //最多运行3个线程的线程池
for (int i = 0; i < 10; ++i) {
executorService.execute(new ThreadTest(i));
}
executorService.shutdown();//等待所有线程执行完
try {
executorService.awaitTermination(2, TimeUnit.SECONDS);
System.out.println("等待完了");
} catch (InterruptedException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
}
List<Runnable> list = executorService.shutdownNow(); //放弃所有正在执行的任务
for (Runnable runnable : list) {
System.out.println("被遗弃的任务" + runnable);
}
System.out.println("所有线程执行完");
}
static class ThreadTest implements Runnable {
private int id;
public ThreadTest(int id) {
this.id = id;
}
public void run() {
System.out.println("thread:" + id + " is running");
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
}
System.out.println("thread:" + id + " end running");
}
public String toString() {
return "线程:" + id;
}
}
}
固定线程数demo
最新推荐文章于 2022-02-28 10:31:47 发布