package three.day.thread;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class SingleThreadPool {
service.execute(new Runnable(){
public void run() {
System.out.println("only me");
}
});
//如果没有下面的代码,程序一直处于不结束状态,
}
}
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class SingleThreadPool {
public static void main(String[] args) {
//相当于创建一个固定大小为1的线程池 ExecutorService service = Executors.newFixedThreadPool(1);
ExecutorService service = Executors.newSingleThreadExecutor();service.execute(new Runnable(){
public void run() {
System.out.println("only me");
}
});
//如果没有下面的代码,程序一直处于不结束状态,
service.shutdown();
//在前一篇线程池的文章中提到,service.shutdown();方法是线程阻塞的,会等待线程池中的所有线程都没有任务了,都成为了空闲线程时,才会执行
//service.shutdownNow();则相反,它不是线程阻塞的,它不理会线程中的线程是否已经执行完了任务,只要你调用了它,那么他就关闭线程池,那么
//线程池中的所有线程都会中断
//service.shutdownNow();}
}