java ExecutorService 线程池的使用姿势
ExecutorService executors = Executors.newFixedThreadPool(5);
//简单的线程执行方法
executors.execute(() -> { //这里使用了java8的lambda 表达式
//TODO 在这里编写要执行的代码
});
//submit 方法允许返回对象数据,供相关需求使用
Future<String> future = executors.submit(() -> {
//TODO 在这里编写要执行的代码
return "success";
});
System.out.println(future.get());
executors.shutdown(); //关闭线程池
Executors.newFixedThreadPool() //定长线程池,超过实时并发数,会在队列中等待
Executors.newCachedThreadPool() //缓存线程池,灵活控制线程池数,可回收,可创建
Executors.newScheduledThreadPool() //定时任务线程池,支持线程定时周期性执行
Executors.newSingleThreadExecutor() //单线程化的线程池,用唯一的工作线程来执行,保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行