首页后端开发其他后端知识Java线程池创建是怎样,线程池的特点和功能是什么

Java线程池创建是怎样,线程池的特点和功能是什么

时间2024-03-25 18:46:03发布访客分类其他后端知识浏览796
导读:这篇文章主要给大家介绍“Java线程池创建是怎样,线程池的特点和功能是什么”的相关知识,下文通过实际案例向大家展示操作过程,内容简单清晰,易于学习,有这方面学习需要的朋友可以参考,希望这篇“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线程池创建是怎样,线程池的特点和功能是什么”的介绍了,感谢各位的阅读,希望文本对大家有所帮助。如果想要了解更多知识,欢迎关注网络,小编每天都会为大家更新不同的知识。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Java线程池创建是怎样,线程池的特点和功能是什么
本文地址: https://pptw.com/jishu/652968.html
Java代码块的分类是什么,具有什么特征 PHP区分大小写吗?一文带你看懂

游客 回复需填写必要信息