线程池,其实就是一个容纳很多个线程的容器,其中的线程可以反复使用,省去了频繁创建线程对象的操作,无需反复创建线程而消耗过多的资源。
注意:线程池中的线程运行结束不会被销毁,而是返回线程池等待下次被调用
线程池是jsk5.0版本推出
ExecutorServervice线程池类
线程池赋值给线程声明周期,我们只需要向线程池中提交执行目标,线程池会自动分配线程,执行对应的操作(任务逻辑)
方法:
F<?> n submit(Runnable task):接收一个Runnable接口实现类,执行线程的目标
创建线程:一种是Thread,一种是Runnable,另外一种是线程池。(三种方式)。都无法得到返回值。
java中提供了一个接口Callable
callable与Runnable区别
1、如果需要完成并且获得结果,就使用call方法,注意:不能使用callable创建线程,只能使用Runnable创建线程
2、call方法会抛出异常,run没有异常
3、为实现Callable接口,必须重写call方法
、
向线程提交任务:
1、Futrue<?> submit(Callable
Futrue:返回任务的结果
V get():返回的一个call结果