Java并发编程之线程管理(Executor框架12)

本文介绍如何使用固定大小的线程池避免性能问题。通过newFixedThreadPool方法设置最大线程数,当线程数达到上限时,后续任务将被阻塞直至线程可用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上节

4.2创建一个可变线程池大小的执行器

知道newCachedThreadPool()创建的ThreadPoolExecutor的缺陷后,有必要使用其它策略来克服这个问题。如果你想避免这个问题,Executor类提供了一个方法来创建一个可修复大小的线程执行器。这个线程执行器有一个最大线程数。如果你发送去的线程数超过这个数,Executor不会创建额外的线程,并且剩余的任务将被阻塞直到Executor有一个空闲的线程。伴随着这种行为,你确保了Executor不会产生一个性能很差的程序。

修改以前的代码,改变如下所示:

      public Server(){
             executor=(ThreadPoolExecutor)Executors.newFixedThreadPool(5);
      }


在这种情况下,你已经使用了Executor类的方法newFixedThreadPool()创建这个执行器。这个方法指定了线程的最大数量,从而保证了不会超出系统的负荷。如果你发送过多的线程数,剩余的任务会被阻塞直到有空闲的线程来执行它们。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值