当前位置: 首页 > news >正文

廊坊网站建设技术外包重庆官网seo分析

廊坊网站建设技术外包,重庆官网seo分析,网站建设案列,青岛专业做网站线程池的基本原理: 无论是之前在JavaSE基础中,我们学习过的常量池,还是在操作数据库时,我们学习过数据库连接池,以及接下来要学习的线程池,均是一种池化思想,其目的就是为了提高资源的利用率&a…

线程池的基本原理:

无论是之前在JavaSE基础中,我们学习过的常量池,还是在操作数据库时,我们学习过数据库连接池,以及接下来要学习的线程池,均是一种池化思想,其目的就是为了提高资源的利用率,线程池顾名思义就是对线程对象的一种优化,如果不使用线程池,那么我们对线程的操作即为手动创建线程对象执行任务任务执行完毕释放线程对象,映射到我们生活为我们每次打电话都需要买一个手机,每次打完电话就将手机扔掉,那么这样一来,无疑是非常的铺张浪费,而线程池就类似于将手机重复利用而不是每次都换新的,它能很好地提高资源的利用率并且由于线程对象是提前创建好的,因此也能够提高程序的响应速度

下面我使用日常生活中最常见的一个例子来说明线程池的原理

我们可以将海底捞作为一个线程池,那么海底捞中的桌子可以看作是线程对象,假设当前店中已经有3张空闲的桌子可以使用,此时来了4组可以需要吃饭,那么服务员会根据先后顺序先安排前3组客人进行就餐,剩下的一组客人需要进入等待区,随后来的客人都会进入等待区,但是等待区的位置也不是无穷无尽的啊,假设我们的等待区只能最多让2个用户进行等待,当前如果又来了一个客人,那么就会出现他们既没有空闲的餐桌供他们使用,等待区也没有空闲的位置,那么此时由于客人并发量太大了,海底捞的老板就会触发一种应急方案,就是在当前餐厅空旷的区域加桌子,那么等待区中的第一位客人就可以从等待区中出来了呀,刚刚没有办法处理的客人此时就可以加入等待区中,加桌子是挺好的,但是也不能无限加啊,因为餐厅可使用的地方是有限的,当达到最大值后,又来了一位客人,那么服务员只好拒绝接待该客人!

使用Java简单模拟实现线程池:

package org.example;import java.util.concurrent.*;public class Main {public static void main(String[] args) {//3-->表示核心的线程对象数量,也就是上述海底捞例子中没加桌子前的餐厅桌子数量//5-->表示最大线程对象的数量,也就是上述海底捞例子中该餐厅最多可容纳的桌子数量//1和后面的TimeUnit.SECONDS表示1秒钟没有任务,就可以停止工作了//ArrayBlockingQueue-->表示一个等待队列//defaultThreadFactory-->调用默认的工厂//AbortPolicy拒绝策略//ExecutorService是Java提供的线程池ExecutorService executorService=new ThreadPoolExecutor(3,5,1L, TimeUnit.SECONDS,new ArrayBlockingQueue<>(3), Executors.defaultThreadFactory(), new ThreadPoolExecutor.AbortPolicy());for (int i=0;i<9;i++){executorService.execute(()->{System.out.println(Thread.currentThread().getName()+"办理业务");});}executorService.shutdown();}
}

输出如下所示:

当前线程池最多可容纳线程的数量为8,那么到第九个线程就会触发拒绝策略

pool-1-thread-1办理业务
pool-1-thread-5办理业务
pool-1-thread-4办理业务
pool-1-thread-3办理业务
pool-1-thread-2办理业务
pool-1-thread-4办理业务
pool-1-thread-1办理业务
pool-1-thread-5办理业务
Exception in thread "main" java.util.concurrent.RejectedExecutionException: Task org.example.Main$$Lambda$1/1283928880@682a0b20 rejected from java.util.concurrent.ThreadPoolExecutor@3d075dc0[Running, pool size = 5, active threads = 5, queued tasks = 3, completed tasks = 0]at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2063)at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:830)at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1379)at org.example.Main.main(Main.java:15)
http://www.wangmingla.cn/news/113989.html

相关文章:

  • 可以直接进入的舆情网站百度平台联系方式
  • html+css网站模板自己的网站怎么推广
  • 东阳做网站公司成都关键词自然排名
  • 晋江+网站建设+推广优化搜狗排名
  • 网站付费推广竞价中国站长之家官网
  • 网站操作日志中国网站建设公司前十名
  • 做项目接任务的网站免费推广
  • 淄博网站制作网络丰富南宁市优化网站公司
  • 让别人做网站的步骤百度官方电话人工服务电话
  • 可以做兼职的网站有哪些工作传统营销
  • 公司做网站的费用入账b站推广2024mmm已更新
  • 淘宝客网站模板下载企业网站有什么
  • wordpress 赞助插件seo排名赚app是真的吗
  • 专业网站建设要多少钱哪里可以免费推广广告
  • ssm html实现网站开发营销软件有哪些
  • 用web做的网站精准引流推广公司
  • 中小企业网站制作是什么搜索引擎排名2021
  • 所有复刻手表网站全国各城市疫情搜索高峰进度
  • 比较好的 网站统计系统 php源码疫情最新消息
  • 太原做网站的公司排行seo应该如何做
  • 屏山县龙华镇中心村建设招标网站网站建设排名优化
  • 有什么可以做兼职的网站小红书推广平台
  • 电子商务网站设计与...如何做网站优化
  • 广州专业建站全国最新的疫情数据
  • 网站一般在哪里找新浪网今日乌鲁木齐新闻
  • 网站建设荣茂app推广是做什么的
  • 响应式外贸网站建设seo外包服务项目
  • 制作介绍的网站模板黄页网站推广服务
  • 养老网站建设的意义搜索引擎广告形式有
  • 牡丹江seo网站推广蜘蛛屯优化排名0元免费做代理