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

网站涉及敏感视频等该怎么做门户类网站费用

网站涉及敏感视频等该怎么做,门户类网站费用,做服装搭配的流行趋势网站,建设集团招工信息网站文章目录1.为什么要使用线程池#xff1f;2.你们哪些地方会使用到线程池#xff1f;3.线程池有哪些作用#xff1f;4.线程池的创建方式#xff1f;5.线程池底层是如何实现复用的#xff1f;6.ThreadPoolExecutor 核心参数有哪些 #xff1f;7.线程池创建的线程会一直在运… 文章目录1.为什么要使用线程池2.你们哪些地方会使用到线程池3.线程池有哪些作用4.线程池的创建方式5.线程池底层是如何实现复用的6.ThreadPoolExecutor 核心参数有哪些 7.线程池创建的线程会一直在运行状态吗9.线程池底层 ThreadPoolExecutor 底层实现原理10.线程池队列满了任务会丢失吗 11.线程池如何合理配置参数 1.为什么要使用线程池 因为频繁的开启线程或者停止线程 线程需要重新被 CPU 从就绪到运行状态调度 需要发生CPU 的上下文切换 效率非常低。 2.你们哪些地方会使用到线程池 实际开发项目中 禁止自己 new 线程使用线程池来统一维护管理。 案例分享 项目中异步发邮件和发短信就是用到了多线程但是呢我们自己如果通过new thread线程异步的去发短信或者邮件这样会存在隐患导致线程没有使用到线程池进行维护和统一管理。因此我们采用线程池的方案使用springboot整合线程池实现异步发短信或者邮件。当项目比较小时可以采用此方案如果项目比较大做异步时建议采用使用MQ异步。 3.线程池有哪些作用 核心点 复用机制 提前创建好固定的线程一直在运行状态 实现复用 限制线程创建数量。 1.降低资源消耗 通过池化技术重复利用已创建的线程 降低线程创建和销毁造成的损耗。 2.提高响应速度 任务到达时 无需等待线程创建即可立即执行。 3.提高线程的可管理性 线程是稀缺资源 如果无限制创建 不仅会消耗系统资源 还会因 为线程的不合理分布导致资源调度失衡 降低系统的稳定性。 使用线程池可以进行统一的分 配、 调优和监控。 4.提供更多更强大的功能 线程池具备可拓展性 允许开发人员向其中增加更多的功能。 比 如延时定时线程池 ScheduledThreadPoolExecutor 就允许任务延期执行或定期执行。 4.线程池的创建方式 首先线程池的创建方式我们可以通过JDK原生自带的方式Executors提供了4个API有可缓存线程池、可定长度线程池、可定时线程池、单例线程池但是非常遗憾阿里巴巴java开发手册他不推荐我们使用JDK源码中自带的线程池为什么呢因为我们的线程池底层都是基于 ThreadPoolExecutor 构造函数封装的而 ThreadPoolExecutor构造函数中底层都是采用无界队列缓存我们的任务的会无限缓存任务容易发生内存溢出会导致我们最大线程数会失效。 Executors.newCachedThreadPool(); 可缓存线程池 Executors.newFixedThreadPool() 可定长度 限制最大线程数 Executors.newScheduledThreadPool() 可定时 Executors.newSingleThreadExecutor(); 单例 底层都是基于 ThreadPoolExecutor 构造函数封装 5.线程池底层是如何实现复用的 本质思想创建一个线程不会立马停止或者销毁而是一直实现复用。 提前创建固定大小的线程且一直保持在正在运行状态可能会非常消耗 cpu 的资源当需要线程执行任务将该任务提交缓存在并发队列中如果缓存队列满了则会执行拒绝策略 正在运行的线程从并发队列中获取任务执行从而实现多线程复用 6.ThreadPoolExecutor 核心参数有哪些 corePoolSize核心线程数量 一直正在保持运行的线程 maximumPoolSize最大线程数线程池允许创建的最大线程数。 keepAliveTime超出 corePoolSize 后创建的线程的存活时间。 unitkeepAliveTime 的时间单位。 workQueue任务队列用于保存待执行的任务。 threadFactory线程池内部创建线程所用的工厂。 handler任务无法执行时的处理器。 7.线程池创建的线程会一直在运行状态吗 不会 例如配置核心线程数 corePoolSize 为 2 、最大线程数 maximumPoolSize 为 5 我们可以通过配置超出 corePoolSize 核心线程数后创建的线程的存活时间例如为 60s 在 60s 内没有核心线程一直没有任务执行则会停止该线程。 8.为什么阿里巴巴不建议使用 Executors ? 因为默认的 Executors 线程池底层是基于 ThreadPoolExecutor 构造函数封装的采用无界队列存放缓存任务会无限缓存任务容易发生内存溢出会导致我们最大线程数会失效。 内存溢出与最大线程数会失效 源码中多线程缓存队列采用的是LinkedBlockingQueue而LinkedBlockingQueue的缓存队列大小是无界的Integer.MAX_VALUE缓存队列中会一直会有新的线程加入进来当达到服务器的瓶颈时就会发生内存溢出。最大线程数开启的前提是缓存队列容量慢的时候采用开启最大线程数。 9.线程池底层 ThreadPoolExecutor 底层实现原理 10.线程池队列满了任务会丢失吗 11.线程池如何合理配置参数 自定义线程池就需要我们自己配置最大线程数 maximumPoolSize为了高效的并发运行当 然这个不能随便设置。这时需要看我们的业务是 IO 密集型还是 CPU 密集型。 CPU 密集型 CPU 密集的意思是该任务需要大量的运算而没有阻塞CPU 一直全速运行。CPU 密集任 务只有在真正的多核 CPU 上才可能得到加速(通过多线程)而在单核 CPU 上无论你开几 个模拟的多线程该任务都不可能得到加速因为 CPU 总的运算能力就那些。 CPU 密集型任务配置尽可能少的线程数量以保证每个 CPU 高效的运行一个线程。 一般公式CPU 核数1个 线程的线程池 IO 密集型 I0 密集型即该任务需要大量的 IO即大量的阻塞。在单线程上运行 I0 密集型的任务会导 致浪费大量的 CPU 运算能力浪费在等待。 所以在 IO 密集型任务中使用多线程可以大大的加速程序运行即使在单核 CPU 上这种加 速主要就是利用了被浪费掉的阻塞时间。 I0 密集型时大部分线程都阻寒故需要多配置线程数 公式 CPU 核数 * 2 CPU 核数 / 1 - 阻塞系数 阻塞系数 在 0.8~0.9 之间 查看 CPU 核数 System.out.println(Runtime.getRuntime().availableProcessors());
http://www.sadfv.cn/news/136412/

相关文章:

  • 做业务在那几个网站上找客户端百度网站适配代码
  • 哈尔滨网站建设兼职南京新标特企业网站哪家广告做的
  • 谁有做爰网站号中山cp网站建设
  • 网站页尾内容丽水房产网站建设
  • 做水电到哪个网站找信息代做财务报表分析网站
  • 湖南省建设厅官方网站官网如何添加插件到wordpress
  • 查商家信息有哪些网站滕州做网站比较好的网络公司
  • 门户网站备案win10 wordpress安装教程视频教程
  • 做asp网站需要的实验报告单有经验的邯郸网站建设
  • 中国建设银行网站客户注册保险购买平台有哪些
  • 响应式网站几个断点norris wordpress
  • 搭建广告网站费用群晖wordpress打不开
  • 商丘做网站的公司投资网站开发
  • 贵阳建设工程招投标网站宣传网页
  • 有什么发布做投标报价的网站企业网页页面设计
  • 益阳网站制作公司北京企业响应式网站建设
  • 建网站的网站青浦专业网站建设
  • 东莞市网络seo推广价格巩义seo
  • 移动端网站的优点陕西建设厅官方网站
  • 怎么进行网站推广机顶盒视频网站建设
  • 本地搭建网站网站后台wordpress 插件激活
  • ppt要怎么做网站中国住房和城乡建设部网站首页
  • 阀门公司网站建设汕头网站建设模块
  • 购物网站建设app开发广东省住房和城乡建设厅官网网址
  • 外贸seo网站建设网站建设方案书要写吗
  • 如何做好一个企业网站设计如何做简洁网站设计
  • 电商模板哪个网站好网站上如何放入地图
  • 化妆品网站开发背景如何创立网站 优帮云
  • 好网站建设公司哪家好邯郸市口碑网络技术有限公司
  • 意大利之家设计网站国产 做 视频网站