底层是一个<ArrayList,HashSet,LinkList<Thread>,HashMap>集合,线程池就是一个容器。
当程序第一次启动的时候,创建多个线程,保存到一个集合中当我们想要使用线程的时候,就可以从集合中取出来线程使用
Threa t=list.remove();返回的是被移除的元素
当我们使用完毕线程,需要把线程归还给线程池
list.add(t);
linked.addLast
linked.removeFirst(t);
在JDK1.5之后,可以直接使用线程池,
容纳多个线程的容器,避免过多损耗资源
线程池使用步骤:
1:使用线程池的工厂类executors里面提供额静态方法newFixedThreadPool生产一个指定数量的线程池
2.创建一个类,实现Runnable接口,重写run方法,设置线程任务
3.调用executorService中的submit,传递线程任务(实现类),开启线程,执行run方法
4.调用executorService中的shutdown摧毁线程池(不建议执行 )