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

贵州省建设网官方网站哈尔滨网站建设优化公司

贵州省建设网官方网站,哈尔滨网站建设优化公司,腾讯云一键wordpress,欧米茄手表价格及图片官方网站我提问#xff1a; 问题描述 下面是一个有关线程池调度的面试真题#xff0c;来自于疯狂创客圈社群#xff1a; 一个线程池的核心线程数为10个#xff0c;最大线程数为20个#xff0c;阻塞队列的容量为30。现在提交45个 任务#xff0c;每个任务的耗时为500毫秒。 请问 问题描述 下面是一个有关线程池调度的面试真题来自于疯狂创客圈社群 一个线程池的核心线程数为10个最大线程数为20个阻塞队列的容量为30。现在提交45个 任务每个任务的耗时为500毫秒。 请问这批任务执行完成总计需要多少时间注忽略线程创建、调度的耗时。 “豆包”第一次答案概略 首先前 10 个任务会立即被核心线程执行耗时 500 毫秒×10 5 秒。 然后接下来的 10 个任务会创建新线程执行达到最大线程数耗时也是 5 秒。 此时已经执行了 20 个任务还剩下 45 - 20 25 个任务。 这 25 个任务会进入阻塞队列阻塞队列容量为 30还能容纳。 当 20 个线程执行完各自的任务耗时 5 秒后再从阻塞队列中取出任务执行取完阻塞队列中的 25 个任务需要 25×500 毫秒 12.5 秒。 所以这批任务执行完成总共需要 5 秒 5 秒 12.5 秒 22.5 秒。 我提问从阻塞队列取任务是单线程吗 “豆包”第二次回答 从阻塞队列取任务不一定是单线程。 在一般的线程池实现中多个工作线程都可以从阻塞队列中获取任务来执行而不是局限于单个线程。这样可以提高任务处理的效率和并发性。 但具体情况可能因线程池的具体实现和配置而有所不同。 我提问所以上题面试题的答案是否有不对之处 “豆包”第三次回答 非常抱歉我之前的分析不够全面。 当 20 个线程执行完最初的任务后从阻塞队列中取任务是多个线程同时进行的所以后续 25 个任务耗时 500 毫秒×25÷20≈6.25 秒这里假设平均分配到 20 个线程。 那么总的时间大约为 5 秒前 10 个任务5 秒再 10 个任务6.25 秒≈16.25 秒。 再次为之前的错误向你道歉感谢你的指正。 我提问请整理最新答案。 “豆包”第四次回答 首先前 10 个任务会立即被核心线程执行耗时 500 毫秒×10 5 秒。 然后接下来的 10 个任务会创建新线程执行达到最大线程数耗时也是 5 秒。 此时已经执行了 20 个任务还剩下 45 - 20 25 个任务。 这 25 个任务会进入阻塞队列阻塞队列容量为 30还能容纳。 当 20 个线程执行完各自的任务耗时 5 秒后再从阻塞队列中取出任务执行取完阻塞队列中的 25 个任务需要 500 毫秒×25÷20≈6.25 秒这里假设平均分配到 20 个线程。 那么总的时间大约为 5 秒前 10 个任务5 秒再 10 个任务6.25 秒≈16.25 秒。 再次为之前的错误向你道歉感谢你的指正。 我提问感觉还是不太对10个核心线程执行的同时也可同时创建10个新线程达到最大线程数。 “豆包”第五次回答 非常抱歉我又思考了一下确实如你所说。 最初 10 个任务由核心线程执行耗时 5 秒同时开始创建新线程这 10 个新线程创建及开始执行也需要一定时间假设这个时间较短可忽略不计它们执行任务耗时 5 秒。此时已经过去了 5 秒。 接着还有 25 个任务在阻塞队列20 个线程同时从队列取任务执行25 个任务耗时 500 毫秒×25÷20 6.25 秒。 所以总时间大约为 5 秒6.25 秒11.25 秒。 再次感谢你的指正和探讨。 我提问在核心线程用完阻塞队列已满情况下线程池才会创建非核心线程所以答案是否要修改 “豆包”第六次回答 你说得很对我之前的理解有误。 首先10 个核心线程执行 10 个任务耗时 5 秒。 然后当这 10 个核心线程在执行任务时又提交了 10 个任务这 10 个任务进入阻塞队列。此时队列还未满。 接着再提交 10 个任务此时队列已满开始创建非核心线程执行这 10 个任务耗时 5 秒。 当这些都完成后阻塞队列中还有 20 个任务20 个线程包括核心线程和非核心线程一起处理这 20 个任务耗时 500 毫秒×20÷20 5 秒。 所以总的时间为 5 秒5 秒5 秒15 秒。 非常感谢你的指正这次应该是正确的分析了。 我提问核心线程用完阻塞队列已满情况下应该新创建线程数是45-30-105 “豆包”第七次回答 哎呀你说得太对了我又忽略了这一点。非常感谢你的再次指正。 按照正确的分析首先 10 个核心线程执行 10 个任务耗时 5 秒。 然后又提交 10 个任务进入阻塞队列。 接着再提交 15 个任务此时阻塞队列满且需要创建 5 个新线程这 5 个新线程和 10 个核心线程一起执行这 15 个任务耗时 500 毫秒×15÷15 5 秒。 当这些完成后阻塞队列中还有 20 个任务20 个线程包括核心线程和新创建的 5 个线程一起处理这 20 个任务耗时 500 毫秒×20÷20 5 秒。 所以总时间为 5 秒5 秒5 秒15 秒。 我提问这个时候核心线程10个新创建线程5个吧线程池应该有15个线程那么这种情况下所有45个线程执行完成需要多少时间 “豆包”第八次回答 首先10 个核心线程执行 10 个任务耗时 5 秒。 然后又提交 10 个任务进入阻塞队列。 接着再提交 15 个任务此时阻塞队列满且需要创建 5 个新线程这 5 个新线程和 10 个核心线程一起执行这 15 个任务耗时 500 毫秒×15÷15 5 秒。 当这些完成后阻塞队列中还有 20 个任务15 个线程10 个核心线程和 5 个新创建线程一起处理这 20 个任务耗时 500 毫秒×20÷15≈6.67 秒。 所以总时间为 5 秒5 秒6.67 秒≈16.67 秒。 我提问因为线程是并发执行的所以耗时不用累积吧 “豆包”第九次回答 你说得对我之前的理解有误。 10 个核心线程执行 10 个任务耗时 5 秒。 接着提交 10 个任务进入阻塞队列同时创建 5 个新线程这 15 个线程10 个核心线程和 5 个新创建线程并发执行 15 个任务耗时 500 毫秒×15÷15 5 秒。 此时阻塞队列中还有 20 个任务这 15 个线程继续并发执行这 20 个任务耗时 500 毫秒×20÷15≈6.67 秒。 所以总耗时约为 6.67 秒。非常感谢你的指正。 我提问10个核心线程执行10个任务只需要0.5秒 “豆包”第十次回答 非常抱歉我之前的计算有误。 10 个核心线程执行 10 个任务耗时 0.5 秒。 接着提交 10 个任务进入阻塞队列同时创建 5 个新线程这 15 个线程10 个核心线程和 5 个新创建线程并发执行 15 个任务耗时 500 毫秒×15÷15 0.5 秒。 此时阻塞队列中还有 20 个任务这 15 个线程继续并发执行这 20 个任务耗时 500 毫秒×20÷15≈0.67 秒。 所以总耗时约为 0.67 秒。再次感谢你的指正。 感觉答案还是不对 后续持续更新 未完毕……
http://www.zqtcl.cn/news/522089/

相关文章:

  • 佛山住房和城乡建设厅网站wordpress图片外链转内链
  • 海东高端网站建设价格wordpress侧边栏淘宝客
  • 网站功能建设中页面wordpress让投稿
  • 学校网站 asp网站结构方面主要做哪些优化
  • 深圳做网站(信科网络)做网站需要多少资金
  • 做网站实例教程网站图片的作用
  • 网站建设展板营销渠道的三个类型
  • 用php做视频网站有哪些十大免费logo设计
  • 网站建设对于网络营销的意义微信购物商城
  • 基于个性化推荐的电商网站设计与实现网站 用户体验的重要性
  • 怎么用ajax做电商网站企业网查询是什么
  • 海淀企业网站建设张店学校网站建设公司
  • 专业微网站开发做购物网站怎么赚钱
  • 怎样做酒店网站ppt什么是企业网络营销平台
  • 科技部网站改版方案济南众筹网站建设
  • 中国城乡与住房建设部网站电子商务公司名字推荐
  • 设计参考网站有哪些wordpress 支付宝免签
  • 网站关键词排名优化应该怎么做外包加工网缝纫机外放加工活
  • 电影网站建设模板从传播的角度
  • 北京建网站的公司广州冼村和猎德村哪个最有钱
  • 成都网站建设有限公司济南j建设网
  • 一家网站建设公司需要什么资质互联网网站模块
  • 网站开发php支付接口网站平台建设缴纳什么税
  • 百度文库推广网站庆云网站seo
  • 全网通网站wordpress 按点击调用热门文章
  • 添加网站栏目的步骤网站需求分析怎么做
  • 做网站用那一种语言最好武邑网站建设价格
  • 哈尔滨网站制作招聘互动的网站
  • 专业网站建设品牌网站建设基础课件
  • 自学网站编程网站建设银行北京冬奥会纪念币发行时间