• 技术文章 >Java >java教程

    简单归纳java线程池的四种创建方式

    长期闲置长期闲置2022-07-21 17:55:37转载189
    本篇文章给大家带来了关于java的相关知识,主要介绍了java线程池的四种创建方式详细分析,连接池是创建和管理一个连接的缓冲池的技术,这些连接准备好被任何需要它们的线程使用,下面一起来看一下,希望对大家有帮助。

    推荐学习:《java视频教程

    前言

    在讲述线程池的前提 先补充一下连接池的定义

    连接池是创建和管理一个连接的缓冲池的技术,这些连接准备好被任何需要它们的线程使用

    可以看到其连接池的作用如下:

    1. 线程池

    线程池(英语:thread pool):一种线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价。线程池不仅能够保证内核的充分利用,还能防止过分调度

    特点:

    其功能为:

    重用存在的线程,减少对象创建、消亡的开销可有效控制最大并发线程数,提高系统资源的使用率,同时避免过多资源竞争,避免堵塞。提供定时执行、定期执行、单线程、并发数控制等功能。

    具体其架构如下所示:

    2. 创建方式

    一共有4种创建方式分别为一池一线程、一池n线程、一池可扩容线程、一池定时及周期线程

    Executors.newFixedThreadPool(int)一池N线程,控制最大的并发数,超出的线程会在队列中等待

    ExecutorService threadPool1 = Executors.newFixedThreadPool(5); //5个窗口

    Executors.newSingleThreadExecutor()一池一线程

     ExecutorService threadPool2 = Executors.newSingleThreadExecutor(); //一个窗口

    Executors.newCachedThreadPool()一池可扩容根据需求创建线程,可灵活回收空闲线程
    执行完线程,可不用再扩建继续使用

     ExecutorService threadPool3 = Executors.newCachedThreadPool();

    Executors.newScheduledThreadPool(),支持定时及周期性任务执行

    //表示延迟一秒,后执行3秒
    ScheduledExecutorService scheduledThreadPool = Executors.newScheduledThreadPool(5);
    scheduledThreadPool.scheduleAtFixedRate(new Runnable() {
          @Override
          public void run() {
              log.info("delay 1 seconds, and excute every 3 seconds");
     
          }
    }, 1, 3, TimeUnit.SECONDS);

    推荐学习:《java视频教程

    以上就是简单归纳java线程池的四种创建方式的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:脚本之家,如有侵犯,请联系admin@php.cn删除
    专题推荐:java
    上一篇:Java中Map接口的使用以及面试知识点总结 下一篇:Java通过底层原码了解数组拷贝
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• 浅显易懂的JavaScript引入• 详细了解JavaScript编译原理• JavaScript怎么处理树状结构数据的增删改查• 简单介绍Java Servlet程序• 简单介绍JavaScript “原型“与“原型链“
    1/1

    PHP中文网