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

如何让企业网站百度免费资源网站

如何让企业网站,百度免费资源网站,做旅游地产的网站和公司,群晖 wordpress加载慢设计线程池 这种设计类问题还是一样,先说下理解,表明你是知道这个东西的用处和原理的,然后开始 阐述。基本上就是按照现有的设计来说,再添加一些个人见解。 我个人觉得如果要设计一个线程池的话得考虑 池内工作线程的管理、任务编…

设计线程池

这种设计类问题还是一样,先说下理解,表明你是知道这个东西的用处和原理的,然后开始 阐述。基本上就是按照现有的设计来说,再添加一些个人见解。

我个人觉得如果要设计一个线程池的话得考虑 池内工作线程的管理、任务编排执行、线程池超负荷处理方案、监控。

初始化线程数、核心线程数、最大线程池都暴露出来可配置,包括超过核心线程数的线程空闲消亡配置。

任务的存储结构可配置,可以是无界队列也可以是有界队列,也可以根据配置分多个队列来分配不同优先级的任务,也可以采用 工作窃取stealing 的机制来提高线程的利用率。

也可根据任务的性质选择合适的执行策略:

  • I/O密集型任务:通常需要更多的线程来充分利用等待时间,可以适当增加线程池大小。
  • CPU密集型任务:应避免过多线程竞争CPU资源,线程池大小建议设为CPU核心数加1。

当线程池和队列都满载时,应定义合理的拒绝策略:丢弃任务,拒绝任务并抛出异常,丢弃最旧的任务,自定义策略等

实现细节

  • 线程工厂:使用自定义的ThreadFactory来创建线程,可以设置线程名称、优先级等属性。
  • 任务提交接口:提供submit方法,允许提交RunnableCallable任务。
  • 任务执行接口:内部实现runWorker方法,从队列中取出任务并执行。
  • 线程回收机制:当线程空闲时间超过keepAliveTime时,非核心线程会被自动回收。
  • 动态调整:允许运行时调整线程池参数,如核心线程数、最大线程数等。

注意不需要跟面试官解释什么叫核心线程数之类的,都懂的没必要。简单的线程池实现示例如下

import java.util.concurrent.*;
import java.util.*;
public class CustomThreadPoolExecutor extends ThreadPoolExecutor {private final AtomicLong rejectedTasks = new AtomicLong(0);  //记录被拒绝的任务数量private final AtomicLong completedTasks = new AtomicLong(0);  //记录已完成的任务数量// 核心线程数           最大线程数         空闲线程的存活时间   存活时间的时间单位  任务队列public CustomThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit,BlockingQueue<Runnable> workQueue) {super(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue);}@Override   protected void beforeExecute(Thread t, Runnable r) {  //在任务执行前调用,可以用于做一些准备工作super.beforeExecute(t, r);}@Overrideprotected void afterExecute(Runnable r, Throwable t) {  //在任务执行后调用super.afterExecute(r, t);completedTasks.incrementAndGet();}@Overrideprotected void terminated() { //在线程池关闭后调用,可以用于做一些最终的清理工作super.terminated();}@Overrideprotected <T> RunnableFuture<T> newTaskFor(Runnable runnable, T value) {return super.newTaskFor(runnable, value);}@Overrideprotected <T> RunnableFuture<T> newTaskFor(Callable<T> callable) {  //用于创建任务的包装对象return super.newTaskFor(callable); }//任务被拒绝时调用,增加了被拒绝任务的计数,并调用拒绝策略处理任务@Overrideprotected void onRejection(Runnable r, RejectedExecutionHandler handler) {rejectedTasks.incrementAndGet();handler.rejectedExecution(r, this);}public long getCompletedTasks() {  //返回已完成的任务数量return completedTasks.get();}public long getRejectedTasks() {   //返回被拒绝的任务数量return rejectedTasks.get();}
}public class ThreadPoolExample {public static void main(String[] args) {// 配置线程池参数int corePoolSize = 4;int maximumPoolSize = 10;long keepAliveTime = 60L;TimeUnit unit = TimeUnit.SECONDS;BlockingQueue<Runnable> workQueue = new LinkedBlockingQueue<>(100);// 创建自定义线程池CustomThreadPoolExecutor executor = new CustomThreadPoolExecutor(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue);// 提交任务for (int i = 0; i < 200; i++) {executor.submit(() -> {System.out.println("Executing task by " + Thread.currentThread().getName());try {Thread.sleep(1000); // 模拟任务执行时间} catch (InterruptedException e) {Thread.currentThread().interrupt();}});}// 关闭线程池executor.shutdown();try {if (!executor.awaitTermination(60, TimeUnit.SECONDS)) {executor.shutdownNow();}} catch (InterruptedException ex) {executor.shutdownNow();Thread.currentThread().interrupt();}// 输出监控信息System.out.println("Completed tasks: " + executor.getCompletedTasks());System.out.println("Rejected tasks: " + executor.getRejectedTasks());}
}
http://www.zhongyajixie.com/news/6859.html

相关文章:

  • google网站推广seo顾问什么职位
  • 最好的软件开发平台seo结算系统
  • 网站创建设计SEO优化象客深圳20网络推广
  • 个人网站怎么建立流程互联网推广的方式
  • wordpress账号破解seo自动发布外链工具
  • 无版权视频素材网站网站出售
  • 绿色大气漂亮dedecms茶叶企业网站百度推广登陆平台登录
  • 做空间的网站吗网络营销的特点和优势
  • 网站设计的布局重庆seo优化效果好
  • 漳州市建设网站深圳市社会组织总会
  • 淘宝客优惠券网站怎么做腾讯新闻发布平台
  • 代刷网站只做软件互联网营销师有什么用
  • 可以用腾讯企业邮箱域名做网站企业网站怎么建立
  • 深圳市建筑市场信息公开平台seo指的是什么
  • 一个可以做行程的网站宁波品牌网站推广优化公司
  • 网站数据每隔几秒切换怎么做的黑帽seo技巧
  • 建设电商网站哪个平台比较好代写文章平台
  • wordpress主页居中公司关键词seo
  • 如何制作自己的网站免费搜索引擎广告图片
  • 图做的好的网站怎么免费推广自己网站
  • 三桥做网站seo官网
  • 销售一个产品的网站怎么做搭建自己的网站
  • 站长之家alexa排名怎么看长春网站制作系统
  • 现在的网站是用什么软件做的百度查询最火的关键词
  • 做长图文网站百度小说免费阅读
  • 只放一个图片做网站软文广告代理平台
  • 陇南网站网站建设搜索引擎推广的三种方式
  • 北京高端网站建设公司哪家好服装品牌营销策划方案
  • 佛山网站制作哪里好品牌营销推广要怎么做
  • wordpress小说站数据产品推广计划