线程池, Callable<V>接口
线程池:
概念:线程池,其实就是一个容纳多个线程的容器,其中的线程可以反复使用,省去了频繁创建线程对象的操作,无需反复创建线程而消耗过多资源。
Executors:线程池创建工厂类
ExecutorService:线程池类
ExecutorService er=Executors.newFixedThreadPool(int);返回线程池对象
submit()获取线程池中的某一个线程对象,并执行线程中的call()方法
shutdown();释放资源
例:
//获取线程池对象
ExecutorService er=Executors.newFixedThreadPool(2);
//创建线程任务对象
MyRunnable mr=new MyRunnable();//自定义类
//开启线程
er.submit(mr);
//释放
er.shutdown();
Callable<V>接口
与Runnable接口功能相似,用来指定线程的任务。其中的call()方法,用来返回线程任务执行完毕后的结果,call方法可抛出异常。
Future<V> 用来接收执行结束后的返回结果
//创建线程任务
MyCallable mc=new MyCallable();//自定义类,实现Callavle接口,重写call方法 ,有返回值
//创建线程池工厂
ExecutorService es=Executors.newFixedThreadPool(2);
//执行线程任务
Future<Integer> f=es.submit(mc);
//获取返回值
System.out.println(f.get());//.get()方法获取返回值
es.shutdown();