java 线程池的实现方法

 更新时间:2020年02月07日 08:35:54   作者:V  
在本篇文章里小编给大家整理了关于java 线程池的实现方法,有兴趣的朋友们可以学习参考下。

线程池有以下几种实现方式:

Executors目前提供了5种不同的线程池创建配置:

1、newCachedThreadPool()

它是用来处理大量短时间工作任务的线程池,具有几个鲜明特点:它会试图缓存线程并重用,当无缓存线程可用时,就会创建新的工作线程;如果线程闲置时间超过60秒,则被终止并移除缓存;长时间闲置时,这种线程池,不会消耗什么资源。其内部使用SynchronousQueue作为工作队列。

2、newFixedThreadPool(int nThreads)

重用指定数目(nThreads)的线程,其背后使用的是无界的工作队列,任何时候最多有nThreads个工作线程是活动的。这意味着,如果任务数量超过了活动线程数目,将在工作队列中等待空闲线程出现;如果工作线程退出,将会有新的工作线程被创建,以补足指定数目nThreads。

3、newSingleThreadExecutor()

它的特点在于工作线程数目限制为1,操作一个无界的工作队列,所以它保证了所有的任务都是被顺序执行,最多会有一个任务处于活动状态,并且不予许使用者改动线程池实例,因此可以避免改变线程数目。

4、newSingleThreadScheduledExecutor()和newScheduledThreadPool(int corePoolSize)

创建的是个ScheduledExecutorService,可以进行定时或周期性的工作调度,区别在于单一工作线程还是多个工作线程。

5、newWorkStealingPool(int parallelism)

这是一个经常被人忽略的线程池,Java 8 才加入这个创建方法,其内部会构建ForkJoinPool,利用Work-Stealing算法,并行地处理任务,不保证处理顺序。

内容扩展:

java通过Executors工厂类提供我们的线程池一共有4种:

fixedThreadPool() //启动固定线程数的线程池

CachedThreadPool() //按需分配的线程池

ScheduledThreadPoolExecutor()//定时,定期执行任务的线程池

ThreadPoolExecutor()//指定线程数的线程池。

以上就是本次介绍的全部相关知识点,感谢大家的学习和对脚本之家的支持。

相关文章

  • SpringBoot集成WebSocket的两种方式(JDK内置版和Spring封装版)

    SpringBoot集成WebSocket的两种方式(JDK内置版和Spring封装版)

    这篇文章主要介绍了SpringBoot集成WebSocket的两种方式,这两种方式为JDK内置版和Spring封装版,本文结合示例代码给大家介绍的非常详细,需要的朋友可以参考下
    2023-06-06
  • Spring Boot中使用RSocket的示例代码

    Spring Boot中使用RSocket的示例代码

    这篇文章主要介绍了Spring Boot中使用RSocket的示例代码,特别是spring boot 如何帮助抽象出更低级别的RSocket API,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-06-06
  • Java多线程实现方块赛跑小游戏

    Java多线程实现方块赛跑小游戏

    这篇文章主要为大家详细介绍了Java多线程实现方块赛跑小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-07-07
  • Java简单计时的实现案例(可以用来限时循环)

    Java简单计时的实现案例(可以用来限时循环)

    这篇文章主要介绍了Java简单计时的实现案例(可以用来限时循环),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • SpringBoot扩展外部化配置的原理解析

    SpringBoot扩展外部化配置的原理解析

    这篇文章主要介绍了SpringBoot扩展外部化配置的原理解析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • 浅析spring定时器的使用

    浅析spring定时器的使用

    这篇文章主要介绍了浅析spring定时器的使用,帮助大家更好的理解和学习spring框架,感兴趣的朋友可以了解下
    2020-10-10
  • java实现客房管理系统

    java实现客房管理系统

    这篇文章主要为大家详细介绍了java实现客房管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-02-02
  • Java判断当前日期是周几的方法汇总

    Java判断当前日期是周几的方法汇总

    在Java编程中,我们经常会遇到需要获取当前日期是周几的需求。根据国际惯例,一周通常是从周一开始,到周日结束,记作1至7,本文将介绍几种常用的Java方法,让你能够准确地判断当前日期是周几,感兴趣的朋友一起看看吧
    2024-03-03
  • Idea热加载插件JRebel激活以及使用教程

    Idea热加载插件JRebel激活以及使用教程

    JRebel是一款JVM插件,它使得Java代码修改后不用重启系统,立即生效,下面这篇文章主要给大家介绍了关于Idea热加载插件JRebel激活以及使用的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-02-02
  • SpringBoot缓存方法返回值的方法详解

    SpringBoot缓存方法返回值的方法详解

    如何缓存方法的返回值?应该会有很多的办法,这篇文章主要为大家介绍两个比较常见并且比较容易实现的办法:自定义注解和SpringCache,希望对大家有所帮助
    2023-10-10

最新评论