规定一个容器来存储线程,当有任务需要是,从中取走一个线程,用完之后归还。
先学习两个类。
ExecutorService:线程池类。

Executors:线程池创建工厂类。
1.先创建一个类,实现Runnable接口,重写run()方法
2.新建测试类,获取线程池对象,创建线程任务,执行任务之后销毁任务。
3.执行结果
可以看到,我们规定了两条线程,但开启了三个任务,所以第三个任务就会处于等待状态,等待有线程空闲之后,它再开始。
我们发现,使用Runnable接口时,重写该方法并不能有返回值且不能抛出异常,那我们要有返回值或要抛出异常时,就是用到Callable接口。
1.创建类,实现Callable接口,实现接口时,要表明泛型,这样在点击重写方法时会直接将该泛型的返回值写出,重写的方法上也可以添加异常。
2.创建测试类,获取线程池对象,创建线程任务对象,用Future接受执行对象的返回值。
1.首先,要先创建一个类继承Callable,泛型的话,因为是两束相加的结果,所以是Integer类型的
因为重写的方法并不能使用传参数的方法来获取数,所以使用另外一种,成员变量和构造方法的办法来获取数值。
2.创建测试类,按照顺序操作