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

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

  00-1010前言1。线程池2。创作方法

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

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

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

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

  特点:

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

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

  具体其架构如下所示:

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

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

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

  ExecutorService thread pool 2=executors . newsinglethreadexecutor();//一个窗口,Executors.newCachedThreadPool(),一个池可以根据需求扩展创建线程,空闲线程可以灵活回收完成执行线程,不需要扩展就可以继续使用。

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

  //表示延迟一秒,然后三秒的scheduleexecutorservice调度线程池=executors . newscheduledthreadpool(5);scheduledthreadpool . scheduleatfixedrate(new Runnable(){ @ Override public void run(){ log . info(延迟1秒,每3秒执行一次);}},1,3,时间单位。秒);以上就是本文关于创建java线程池的四种方法的详细分析。有关创建java线程池的更多信息,请搜索以前关于流行IT的文章或继续浏览下面的相关文章。我希望你以后能更多地支持流行音乐!

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

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