java使用 Runtime.getRuntime().addShutdownHook来接受关闭程序的信号,示例代码如下:
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class test {
static final int MAX_T = 3;
static ExecutorService pool = Executors.newFixedThreadPool(MAX_T);
public static void main(String[] args) {
pool.execute(() -> {
System.out.println("new thread");
});
Runtime.getRuntime().addShutdownHook(new Thread() {
public void run() {
pool.shutdown();
System.out.println("pool shutdown success.");
System.out.println("Exited!");
}
});
}
}
如果使用lamdba 表达式,可以更简洁:
Runtime.getRuntime().addShutdownHook(new Thread(() -> {
pool.shutdown();
System.out.println("pool shutdown success.");
System.out.println("Exited!");
}));