ExecutorService executorService = Executors.newSingleThreadExecutor();
Thread thread = new Thread(() -> {
System.out. **《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】** println("hello world!");
});
executorService.execute(thread);
}
通过newSingleThreadExecutor()方法可以获得一个线程数为1的线程池。
还有:
public static void main(String[] args) {
ExecutorService executorService = Executors.newCachedThreadPool();
Thread thread = new Thread(() -> {
System.out.println("hello world!");
});
executorService.execute(thread);
}
通过newCachedThreadPool()方法可以获得一个根据需要创建线程的线程池,它会根据任务数创建对应数量的线程。
我们发现,通过Executors类能够创建各式各样的线程池,但阿里巴巴Java开发手册并不推荐我们使用Executors类的方式创建线程,而是要自己手动创建:
那如何手动创建线程池呢?
public static void main(String[] args) {
ThreadPoolExecutor executor = new ThreadPoolExecutor(
5,
10,
5L,
TimeUnit.SECONDS,
new ArrayBlockingQueue<>(3),
Executors.defaultThreadFactory(),
new ThreadPoolExecutor.CallerRunsPolicy());
executor.execute(() -> {
System.out.println("hello world");
});
}