1.背景
如果线程数量多,并且每个线程都只执行需要很短的执行时间的任务,这样频繁的创建线程、销毁线程,效率低下。若一个线程使用完毕后,并不销毁它,而是让他来执行别的任务,就可以使得线程重复使用,提高效率。
2.概念
线程池就是一种容器集合(ArrayList,HashSet,LinkedList<Thread>,HashMap)
3.底层原理
- 创建多个线程,保存到一个集合中,当我们想要使用线程的时候,就可以从集合中取出线程使用,Thread t = arrayList.remove(0);Thread t = linkedList.removeFirst();
- 当我们使用完毕线程,需要把线程归还给线程池,arrayList.add(t);linkedList.addLast(t);
- 在JDK1.5之后,JDK内置了线程池,可以直接使用。
创建线程池的优点:
1.降低资源消耗,减少了创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行多个任务。
2.提高响应速度,当任务到达时,任务可以不需要等到线程创建就能立即执行。
3.提高线程的可管理性,可以根据系统的承受能力,调整线程池中工