| 失效链接处理 | 
| 
      高性能:池化技术的应用场景  PDF 下载 
	本站整理下载: 
	相关截图: 
![]() 
	主要内容: 
		简单来说,池化技术就是将可重复利⽤的对象⽐如连接、线程统⼀管理起来。线 
	
		程池、数据库连接池、HTTP、Redis 连接池等等都是对池化技术的应⽤。 
	
		通常来说,池化技术所管理的对象,⽆论是连接还是线程,它们的创建过程都⽐ 
	
		较耗时,也⽐较消耗系统资源 。所以,我们把它们放在⼀个池⼦⾥统⼀管理起 
	
		来,以达到 提升性能和资源复⽤的⽬的 。 
	
		从上⾯对池化技术的介绍,我们可以得出池化技术的核⼼思想是空间换时间。它 
	
		的核⼼策略是使⽤已经创建好的对象来减少频繁创建对象的性能开销,同时还可 
	
		以对对象进⾏统⼀的管理。 
	
		不过,池化技术也不是并⾮没有缺点的。如果池⼦中的对象没有被充分利⽤的 
	
		话,也会造成多余的内存浪费(相对于池化技术的优点来说的话,这个缺点⼏乎 
	
		可以被忽略)。 
	
		线程池和数据库连接池我们平时开发过程中应该接触的⾮常多。因此,我会以线 
	
		程池和数据库连接池为例来介绍池化技术的实际应⽤。 
	
		正如其名,线程池主要负责创建和管理线程。 
	
		没有线程池的时候,我们每次⽤到线程就需要单独创建,⽤完了之后再销毁。然 
	
		⽽,创建线程和销毁线程是⽐较耗费资源和时间的操作。 
	
		有了线程池之后,我们可以重复利⽤已创建的线程降低线程创建和销毁造成的消 
	
		耗。并且,线程池还可以⽅便我们对线程进⾏统⼀的管理。 
	
		我们拿 JDK 1.5 中引⼊的原⽣线程池 ThreadPoolExecutor 来举例说明。 
	
		ThreadPoolExecutor 有 3 个最重要的参数: 
	
		corePoolSize : 核⼼线程数线程数定义了最⼩可以同时运⾏的线程数 
	
		量。 
	
		maximumPoolSize : 当队列中存放的任务达到队列容量的时候,当前可以 
	
		同时运⾏的线程数量变为最⼤线程数。 
	
		workQueue : 当新任务来的时候会先判断当前运⾏的线程数量是否达到核 
	
		⼼线程数,如果达到的话,新任务就会被存放在队列中 
 | 
    




    
苏公网安备 32061202001004号


    