线程池
2021-05-17 06:27
标签:run sub java int 线程池 接收 throw 产生 task (jdk1.5特性) 线程池 标签:run sub java int 线程池 接收 throw 产生 task 原文地址:https://www.cnblogs.com/bbbbbbbb1og/p/9747355.htmlExecutors(线程池)
jdk1.5之前,我们必须要手动实现自己的线程池,jdk1.5之后,Java内置支持线程池
? 线程池的优点
线程池里的每一个线程代码结束后,并不会死亡,而是再次回到线程池中成为空闲状态,等待下一个对象来使用。
? 和线程池相关的类和方法
Executors工厂类(用于产生线程池):
public static ExecutorService newCachedThreadPool()
public static ExecutorService newFixedThreadPool(int nThreads)
创建一个线程池对象,并控制要创建几个线程对象
public static ExecutorService newSingleThreadExecutor()
创建一个线 程池对象,并只有一个线程对象
ExecutorService接口(用于执行Runnable对象或者Callable对象代表的线程):
Future> submit(Runnable task) 执行Runnable对象代表的线程
void shutdown() 启动一次顺序关闭,执行以前提交的任务,但不接受新任务
Callable
V call() throws Exception 计算结果并返回,类似于带返回值、可以抛异常run()方法
Future接口(泛型接口,表示异步计算的结果,这里指定的泛型与 Callable 中的泛型一致)
V get() 返回计算的结果,需要用引用类型接收
? 示例代码:
// 创建一个线程池对象,控制要创建几个线程对象
ExecutorService pool = Executors.newFixedThreadPool(2);
// 可以执行Runnable对象或者Callable对象代表的线程
pool.submit(new MyRunnable());
pool.submit(new MyRunnable());
//结束线程池
pool.shutdown();
下一篇:线程的通讯