为什么要用线程池?
我们都知道,每一次创建一个线程,JVM后面的工作包括:为线程建立虚拟机栈、本地方法栈、程序计数器的内存空间(下图可看出),所以线程过多容易导致内存空间溢出。同时,当频繁的创建和销毁线程容易浪费系统的计算能力在资源的回收和申请中。
另外:创建过多的线程,会导致cpu在线程中的切换时间比处理时间还多,大大降低了系统的吞吐量。因此我们使用线程池如下好处:
有效控制线程的数量,防止线程数量过多。
提高线程的利用程度,避免频繁的创建及销毁线程。
有更灵活的线程使用方式及拒绝措施。
再给大家看看阿里开发规约里面是怎么说的
线程的快速示例
我知道大多数人都希望先看看线程池怎么创建,然后再深入了解。下面给大家一个demo