全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Java 线程池框架

一、线程池结构图

二、示例

定义线程接口

public class MyThread extends Thread {
 @Override
 publicvoid run() {
 System.out.println(Thread.currentThread().getName() + "正在执行");
 }
}

1:newSingleThreadExecutor

ExecutorService pool = Executors. newSingleThreadExecutor();
 Thread t1 = new MyThread();
 Thread t2 = new MyThread();
 Thread t3 = new MyThread();
 //将线程放入池中进行执行
 pool.execute(t1);
 pool.execute(t2);
 pool.execute(t3);
 //关闭线程池
 pool.shutdown();

输入结果:

pool-1-thread-1正在执行
pool-1-thread-1正在执行
pool-1-thread-1正在执行

2:newFixedThreadPool

ExecutorService pool = Executors.newFixedThreadPool(3);
Thread t1 = new MyThread();
 Thread t2 = new MyThread();
 Thread t3 = new MyThread();
 Thread t4 = new MyThread();
 Thread t5 = new MyThread();
 //将线程放入池中进行执行
 pool.execute(t1);
 pool.execute(t2);
 pool.execute(t3);
 pool.execute(t4);
 pool.execute(t5);
pool.shutdown();

输入结果:

pool-1-thread-1正在执行
pool-1-thread-2正在执行
pool-1-thread-1正在执行
pool-1-thread-2正在执行

3 :newCachedThreadPool

ExecutorService pool = Executors.newCachedThreadPool();
 Thread t1 = new MyThread();
 Thread t2 = new MyThread();
 Thread t3 = new MyThread();
 Thread t4 = new MyThread();
 Thread t5 = new MyThread();
 //将线程放入池中进行执行
 pool.execute(t1);
 pool.execute(t2);
 pool.execute(t3);
 pool.execute(t4);
 pool.execute(t5);
 //关闭线程池
 pool.shutdown();

输入结果:

pool-1-thread-2正在执行
pool-1-thread-4正在执行
pool-1-thread-3正在执行
pool-1-thread-1正在执行
pool-1-thread-5正在执行

4 :ScheduledThreadPoolExecutor

ScheduledExecutorService pool = Executors.newScheduledThreadPool(2);
pool.scheduleAtFixedRate(new Runnable() {//每隔一段时间就触发异常
  @Override
  public void run() {
   //throw new RuntimeException();
   System.out.println("================");
  }
 }, 1000, 2000, TimeUnit.MILLISECONDS);
pool.scheduleAtFixedRate(new Runnable() {//每隔一段时间打印系统时间,证明两者是互不影响的
  @Override
  public void run() {
   System.out.println("+++++++++++++++++");
  }
 }, 1000, 2000, TimeUnit.MILLISECONDS);

输入结果:

================
+++++++++++++++++
+++++++++++++++++
+++++++++++++++++

三、线程池核心参数

corePoolSize : 池中核心的线程数

maximumPoolSize : 池中允许的最大线程数。

keepAliveTime : 当线程数大于核心时,此为终止前多余的空闲线程等待新任务的最长时间。

unit : keepAliveTime 参数的时间单位。

workQueue : 执行前用于保持任务的队列。此队列仅保持由 execute方法提交的 Runnable任务。

threadFactory : 执行程序创建新线程时使用的工厂。

handler : 由于超出线程范围和队列容量而使执行被阻塞时所使用的处理程序。

ThreadPoolExecutor :Executors类的底层实现。

3.1 任务排队机制

SynchonousQueue: 同步队列,队列直接提交给线程执行而不保持它们,此时线程池通常是无界的

LinkedBlockingQueue: 无界对列,当线程池线程数达到最大数量时,新任务就会在队列中等待执行,可能会造成队列无限膨胀

ArrayBlockingQueue : 有界队列,有助于防止资源耗尽,一旦达到上限,可能会造成新任务丢失

注意:

newSingleThreadExecutor、newFixedThreadPool使用的是LinkedBlockingQueue

newCachedThreadPool 使用的是 SynchonousQueue

newScheduledThreadPool使用的是 DelayedWorkQueue

3.2 线程执行流程

3.3 线程大小确定:

cpu密集型: 尽量少开线程,最佳线程数 Ncpu+1

io密集型:多开线程,2Ncpu

混合型:根据情况而定,可以拆分成io密集和cou密集

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!


# Java  # 线程池  # 框架  # 详谈Java几种线程池类型介绍及使用方法  # Java 线程池原理深入分析  # Java 线程池详解及创建简单实例  # 浅谈java常用的几种线程池比较  # Java 定时器(Timer)及线程池里使用定时器实例代码  # Java 线程池详解及实例代码  # 四种Java线程池用法解析  # Java编程中线程池的基本概念和使用  # java基于线程池和反射机制实现定时任务完整实例  # java的线程池框架及线程池的原理  # 的是  # 池中  # 新任务  # 每隔  # 无界  # 结构图  # 会在  # 而不  # 而定  # 此为  # 尽量少  # 混合型  # newSingleThreadExecutor 


相关文章: 制作公司内部网站有哪些,内网如何建网站?  建站之星体验版:智能建站系统+响应式设计,多端适配快速建站  如何高效生成建站之星成品网站源码?  C++中引用和指针有什么区别?(代码说明)  宝塔建站教程:一键部署配置流程与SEO优化实战指南  武清网站制作公司,天津武清个人营业执照注销查询系统网站?  全景视频制作网站有哪些,全景图怎么做成网页?  如何在万网自助建站中设置域名及备案?  网站图片在线制作软件,怎么在图片上做链接?  表情包在线制作网站免费,表情包怎么弄?  广东企业建站网站优化与SEO营销核心策略指南  西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?  深圳企业网站制作设计,在深圳如何网上全流程注册公司?  5种Android数据存储方式汇总  盘锦网站制作公司,盘锦大洼有多少5G网站?  建站主机核心功能解析:服务器选择与网站搭建流程指南  西安大型网站制作公司,西安招聘网站最好的是哪个?  制作网站怎么制作,*游戏网站怎么搭建?  建站之星代理如何优化在线客服效率?  营销式网站制作方案,销售哪个网站招聘效果最好?  无锡营销型网站制作公司,无锡网选车牌流程?  洛阳网站制作公司有哪些,洛阳的招聘网站都有哪些?  头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?  如何在云主机快速搭建网站站点?  建站之星如何防范黑客攻击与数据泄露?  网站制作公司广州有几家,广州尚艺美发学校网站是多少?  名字制作网站免费,所有小说网站的名字?  建站OpenVZ教程与优化策略:配置指南与性能提升  如何快速搭建支持数据库操作的智能建站平台?  如何批量查询域名的建站时间记录?  济南专业网站制作公司,济南信息工程学校怎么样?  制作销售网站教学视频,销售网站有哪些?  岳西云建站教程与模板下载_一站式快速建站系统操作指南  建站主机CVM配置优化、SEO策略与性能提升指南  潍坊网站制作公司有哪些,潍坊哪家招聘网站好?  建站之星24小时客服电话如何获取?  香港服务器选型指南:免备案配置与高效建站方案解析  建站主机助手选型指南:2025年热门推荐与高效部署技巧  如何快速搭建自助建站会员专属系统?  建站之星如何通过成品分离优化网站效率?  电影网站制作价格表,那些提供免费电影的网站,他们是怎么盈利的?  网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?  建站之星免费版是否永久可用?  广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?  成都网站制作报价公司,成都工业用气开户费用?  如何通过远程VPS快速搭建个人网站?  如何在香港免费服务器上快速搭建网站?  建站之星代理平台如何选择最佳方案?  如何快速搭建高效简练网站?  北京建设网站制作公司,北京古代建筑博物馆预约官网? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。