java线程池:获取运行线程数并控制线程启动速度的方法

 更新时间:2017年05月27日 08:57:21   投稿:jingxian  
下面小编就为大家带来一篇java线程池:获取运行线程数并控制线程启动速度的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

在java里, 我们可以使用Executors.newFixedThreadPool 来创建线程池, 然后就可以不停的创建新任务,并用线程池来执行了。

在提交任务时,如果线程池已经被占满,任务会进到一个队列里等待执行。

这种机制在一些特定情况下会有些问题。今天我就遇到一种情况:创建线程比线程执行的速度要快的多,而且单个线程占用的内存又多,所以很快内存就爆了。

想了一个办法,就是在提交任务之前,先检查目前正在执行的线程数目,只有没把线程池占满的时候在去提交任务。

代码很简单:

int threadCount = ((ThreadPoolExecutor)executor).getActiveCount();
//              System.out.println("running : " + threadCount);
              while (threadCount == POOL_SIZE) {
                TimeUnit.MILLISECONDS.sleep(1);
                threadCount = ((ThreadPoolExecutor)executor).getActiveCount();
//                System.out.println("running : " + threadCount);
              }

              executor.execute

以上这篇java线程池:获取运行线程数并控制线程启动速度的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Spring中的@EnableScheduling定时任务注解

    Spring中的@EnableScheduling定时任务注解

    这篇文章主要介绍了Spring中的@EnableScheduling注解,@EnableScheduling是 Spring Framework 提供的一个注解,用于启用 Spring 的定时任务功能,通过使用这个注解,可以在 Spring 应用程序中创建定时任务,需要的朋友可以参考下
    2024-01-01
  • Spring Boot教程之必须了解的核心概念

    Spring Boot教程之必须了解的核心概念

    这篇文章主要介绍了Spring Boot系列教程中的关于学习Spring Boot必须了解的核心概念的相关资料,需要的朋友可以参考下
    2022-08-08
  • 基于Java实现文件和base64字符串转换

    基于Java实现文件和base64字符串转换

    这篇文章主要介绍了基于Java实现文件和base64字符串转换,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • Spring DI依赖注入实战教程

    Spring DI依赖注入实战教程

    这篇文章主要介绍了SpringDI依赖注入实战教程,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2024-12-12
  • spring Boot查询数据分页显示的方法实例

    spring Boot查询数据分页显示的方法实例

    这篇文章主要给大家介绍了关于spring Boot查询数据分页显示的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用spring Boot具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2020-08-08
  • Java Float 保留小数位精度的实现

    Java Float 保留小数位精度的实现

    这篇文章主要介绍了Java Float 保留小数位精度的实现方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • 浅谈Spring自定义注解从入门到精通

    浅谈Spring自定义注解从入门到精通

    这篇文章主要介绍了浅谈Spring自定义注解从入门到精通,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • java如何执行bat脚本,并监控执行结果

    java如何执行bat脚本,并监控执行结果

    这篇文章主要介绍了java如何执行bat脚本,并监控执行结果问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • Spring IOC 能降低耦合的问题分析及解决方法

    Spring IOC 能降低耦合的问题分析及解决方法

    这篇文章主要介绍了Spring IOC 为什么能降低耦合,依赖注入是调用者仅通过声明某个组件就可以获得组件的控制权,而对该组件的依赖关系管理、查找、加载由外部完成,需要的朋友可以参考下
    2022-06-06
  • SpringBoot 项目使用hutool 工具进行 http 接口调用的处理方法

    SpringBoot 项目使用hutool 工具进行 http 接口调用的处理方

    在实际的开发过程中一个互联网的项目来说 ,有可能会涉及到调用外部接口的实际业务场景,下面通过本文给大家介绍SpringBoot 项目 使用hutool 工具进行 http 接口调用的处理方法,需要的朋友可以参考下
    2022-06-06

最新评论