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

余杭网站建设淘宝详情页设计

余杭网站建设,淘宝详情页设计,网站建设网页怎么排列顺序,wordpress会员管理为什么会有线程池#xff1f; 如果客户端发一个请求#xff0c;服务端就创建一个线程接收请求#xff0c;线程资源是有限的#xff0c;而且创建一个线程和执行结束之后都要调用操作系统资源销毁线程#xff0c;这样频繁操作肯定非常占用cpu和内存资源#xff0c;线程池的…为什么会有线程池 如果客户端发一个请求服务端就创建一个线程接收请求线程资源是有限的而且创建一个线程和执行结束之后都要调用操作系统资源销毁线程这样频繁操作肯定非常占用cpu和内存资源线程池的作用就是实现线程的资源复用和控制最大线程数还有队列异步处理请求这样就减少线程资源的浪费 一、ThreadPoolExecutor参数如何设置 核心线程数corePoolSize、最大线程数maximumPoolSize 可以根据三个方面进行分析 CPU密集型任务要避免线程的上下文切换所以尽量要少创建线程把corePoolSize设置成CPU核心数1加1是为了避免当中有的线程因为特殊情况被挂起为了尽可能的利用CPU资源IO密集型任务当线程操作IO资源时CPU资源是闲置的我们可以尽可能创建合适的线程数来压榨CPU资源IO时间越长可以设置更多的线程数但是不一定越多越好我们可以通过这个公式来计算线程数CPU核心数*(1线程等待时间/线程运行总时间)混合型任务 总时间-总时间CPU线程等待时间 理想状态下可这样估算但是系统可能运行有其它线程所以要进行压测 jmeter压测 pom.xml文件配置 parentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.5.0/versionrelativePath/ !-- lookup parent from repository --/parent dependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency/dependencies java代码 SpringBootApplication public class Application {public static void main(String[] args){SpringApplication.run(Application.class, args);} }RestController public class TestController {GetMapping(/test)public String test() throws InterruptedException {Thread.sleep(1000);return test;} } jmeter压测操作 添加聚合报告 添加结果树视图 聚合结果报告 默认最大200个连接总执行时间25s平均响应时间(Average)4.2s最小响应时间(Min)1s最大响应时间(Max)8s请求错误率(Error)0%吞吐量(Throughput)每秒钟完成125.5个请求 设置最大800个连接总执行时间9s平均响应时间(Average)1.2s最小响应时间(Min)1s最大响应时间(Max)2.5s请求错误率(Error)0%吞吐量(Throughput)每秒钟完成560.6个请求 基本上压测最大连接数值如果平均响应时间和执行总时间趋于稳定为准 总结 CPU密集型任务CPU核心数1IO密集型任务抽样系统高峰期CPU执行时间再先通过公式算出理论值然后通过理论值进行压测压测的业务如果是核心业务并发量高比如1s需要处理1000个请求corePoolSize和maximumPoolSize都可以设置成500如果是非核心业务并发量小核心线程数保留10个就行最大线程数设置1000队列大小需要根据线程1s能处理多少请求比如1s能处理100个请求队列中有300个任务也就是说任务可能要等3s才能处理完如果不能接受这个时间就要限制队列大小 二、ThreadPoolExecutor具体执行过程 1、JUC包下ThreadPoolExecutor执行流程 核心线程来一个任务创建一个线程提交任务数超过核心线程数会放到队列中队列中放不下会在小于maximumPoolSize前提又创建新任务核心线程和非核心线程任务都做完了都会到队列中去拿任务 2、tomcat的ThreadPoolExecutor执行流程 创建ThreadPoolExecutor对象时就已经初始化好了核心线程 三、ThreadPoolExecutor如何关闭 正常关闭、异常关闭、手动调用shutdown()、shutdownNow()方法 https://www.processon.com/view/link/64cb797372e1a4480965cf86 为什么线程池执行任务时抛出异常会重新创建一个线程 方便做线程异常处理如果直接忽略导致无法处理异常所以让它抛出异常终止然后重启一个线程 ThreadPoolExecutor executor new ThreadPoolExecutor(10, 100, 1000, TimeUnit.MILLISECONDS, new ArrayBlockingQueueRunnable(100), new ThreadFactory() {Overridepublic Thread newThread(Runnable r) {Thread thread new Thread(r);thread.setUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {Overridepublic void uncaughtException(Thread t, Throwable e) {System.out.println(拦截异常);}});return thread;}});
http://www.huolong8.cn/news/211279/

相关文章:

  • 玉石电商网站建设方案网站最新发布址
  • 合肥html5网站建设网站建设的基本流程和步骤
  • 做gif的网站正规的扬中网站建设
  • 模板网站优化中国家具网
  • 国外产品展示网站模板怎么建设两个大淘客网站
  • 尧都网站建设公众号设计
  • 微信开放社区兰州优化官网推广
  • 网站建设与管理的书销售产品网站有哪些
  • 南充高端网站建设做网站如何选择关键词
  • 合肥市建设工程造价信息网站景安做网站教程
  • 专业做网站建设制作服务建设网站需要的工具
  • 百度不收录网站内页注册公司需要什么条件吗
  • 做网站的公司怎么找客户做网站需要掌握的软件
  • 网站建设的报告蓝色网站后台
  • 如何建设一个自己的网站首页网站前期定位
  • 苏州 规划建设局网站做企业咨询管理怎么样
  • 企业网站实名审核中心厦门学网站建设
  • 网页设计和网站开发有什么区别东营企业自助建站
  • 内江建网站龙岩天宫山缆车门票多少钱
  • 商城网站微信支付接口申请流程营销网站首页设计
  • html可以做网站后台吗现在哪里大搞建设
  • 湖州网站开发公司锡林郭勒盟建设工程造价信息管理网站
  • 个人电影网站备案衡阳网络营销公司
  • 做托福的网站怎样重新运行wordpress
  • 建设文明网站包括19
  • asp开发网站详细步骤做设计网站的工作内容
  • 网站建设咨询什么宿州高端网站建设公司哪家好
  • 网站建设推广案例c 转网站开发
  • 网站代码怎么看网站开发 硬件环境
  • 公司企业网站设计尺寸网站建设的企业目标