java中线程池的创建与使用,线程池的创建方式有几种

  java中线程池的创建与使用,线程池的创建方式有几种

  本文介绍了java的一些知识,主要介绍了创建java线程池的四种方法,并对它们进行了详细的分析。连接池是创建和管理连接缓冲池的技术。这些连接可供任何需要它们的线程使用。下面我们一起来看看,希望对你有所帮助。

  如何解决写爬虫IP受阻的问题?立即使用。

  

前言

  在说线程池之前,请先补充一下连接池的定义。

  连接池是创建和管理连接缓冲池的技术,任何需要它们的线程都可以使用它。

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

  

1. 线程池

  线程池(英语:thread pool):线程使用模式。线程太多会带来调度开销,影响缓存局部性和整体性能。线程池维护多个线程,等待管理程序分配可以并发执行的任务。这避免了在处理短期任务时创建和销毁线程的开销。线程池既能保证内核的充分利用,又能防止过度调度。

  特点:

  降低资源消耗: 通过重用创建的线程,减少线程创建和销毁造成的消耗。提高响应速度:当一个任务到达时,可以立即执行,而不需要等待线程被创建。增加线程数量的可管理性: 是一种稀缺资源。如果无限制地创建,不仅会消耗系统资源,还会降低系统的稳定性。使用线程池可以进行统一的分配、调优和监控。其功能为:

  重用现有线程,降低对象创建和死亡的代价,可以有效控制最大并发线程数,提高系统资源利用率,避免过度的资源竞争和拥塞。提供常规执行、常规执行、单线程、并发控制等功能。

  具体其架构如下所示:

  

2. 创建方式

  有四种创建方法:一个带有一个线程的池,一个带有n个线程的池,一个带有可扩展线程的池,一个带有定时和周期性线程的池。

  执行人。newfixedthreadpool(int)n个线程的池,控制最大并发数,多余的线程会在队列中等待。

  ExecutorService thread pool 1=executors . newfixedthreadpool(5);//5 window executors . newsinglethreadexecutor()一个池一个线程。

  ExecutorService thread pool 2=executors . newsinglethreadexecutor();//一个窗口,Executors.newCachedThreadPool(),一个池可以根据需求扩展创建线程,空闲线程可以灵活回收。

  执行完线程后,可以继续使用,无需扩展。

  ExecutorService thread pool 3=executors . newcachedthreadpool();执行人。newscheduledthreadpool()支持计划的和定期的任务执行。

  //表示延迟一秒,然后执行三秒。

  ScheduledExecutorService scheduledThreadPool=executors . newscheduledthreadpool(5);

  scheduledthreadpool . scheduleatfixedrate(new Runnable(){

  @覆盖

  公共无效运行(){

  log.info(延迟1秒,每3秒执行一次);

  }

  },1,3,时间单位。秒);推荐:以上《java视频教程》是创建java线程池的四种方式的详细内容。更多请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: