多语言展示
当前在线:845今日阅读:176今日分享:34

java常用线程池:newFixedThreadPool

newFixedThreadPool是ExecuteService接口提供的另外一个线程池类型,该类型能够创建一个定长的线程池,即控制最大线程并发数,超过这个并发数的线程将在队列中等待。以下介绍该线程池的用法。
工具/原料
1

java

2

jdk1.8,IntelliJ IDEA

方法/步骤
1

首先,通过Executors执行工具,创建newFixedThreadPool线程池的实例。其中,在创建实例的时候,指定并行运行的最大线程数为5。

2

通过循环方法调用线程池excute方法,执行同一个线程方法10次。用于模拟线程newFixedThreadPool线程池获取线程的过程。

3

在线程方法中,直接输出线程名,用于控制台输出,从而可以比较直观的查看运行的线程。

4

由于线程方法中只是输出线程名,运行耗时非常小,不易看出该线程池的特性,这里可以直接让线程休眠一段时间,模拟程序运行所需要的时间。

5

运行main方法,可以发现,在刚运行程序时,会立即打印出5个线程的输出。

6

过了休眠时间后,再次打印出5个线程。这里就可以看到,newFixedThreadPool线程池按照我们设置的并发量进行了控制。

7

改变并发参数为6,同样可以看到此时输出为6个线程。

8

观察newFixedThreadPool源码,可以看到此时keepAliveTime为0,线程不会进行缓存,只要空闲就会被回收。

注意事项

newFixedThreadPool指定并发数量,需要根据系统资源进行设置。

推荐信息