原创作者:磊哥
在 Java 语言中,提高程序的执行效率有两种实现方法,一个是使用线程、另一个是使用线程池。而在生产环境下,我们通常会采用后者。为什么会这样呢?今天我们就来聊聊线程池的优点,以及池化技术及其应用。
1.池化技术
池化技术指的是提前准备一些资源,在需要时可以重复使用这些预先准备的资源。池化技术的优点主要有两个:提前准备和重复利用。以 Java 语言中的对象创建为例,在对象创建时要经历以下步骤:
-
根据 new 标识符后面的参数,在常量池查找类的符号引用;
-
如果没找到符号应用(类并未加载),进行类的加载、解析、初始化等;
-
虚拟机为对象在堆中分配内存,并将分配的内存初始化为 0,针对对象头,建立相应的描述结构(耗时操作:需要查找堆中的空闲区域,修改内存分配状态等);
-
调用对象的初始化方法(耗时操作:用户的复杂的逻辑验证等操作,如IO、数值计算是否符合规定等)。
从上述的流程中可以看出,创建一个类需要经历复杂且耗时的操作,因此我们应该尽量复用已有的类,以确保程序的高效运行,当然如果能够提前创建这些类就再好不过了,而这些功能的实现依靠的就是池化技术。
2.池化技术应用
常见的池化技术的应用有:线程池、内存池、数据库连接池、HttpClient 连接池等,接下来,我们分别来