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

音乐电子商务网站的建设wordpress做企业站

音乐电子商务网站的建设,wordpress做企业站,湖南昌华建设集团网站,wordpress微信公众我提问: 问题描述 下面是一个有关线程池调度的面试真题,来自于疯狂创客圈社群: 一个线程池的核心线程数为10个,最大线程数为20个,阻塞队列的容量为30。现在提交45个 任务,每个任务的耗时为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-10=5

“豆包”第七次回答

哎呀,你说得太对了,我又忽略了这一点。非常感谢你的再次指正。

按照正确的分析,首先 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.yayakq.cn/news/472255/

相关文章:

  • 成都高新区规划建设局网站广西南宁电商网站建设
  • 橙云的主机支持放两个网站吗长春seo整站优化
  • 个人网站设计主题静态网站怎么入侵
  • WordPress英文网站网站建设只有20%的利润
  • 布吉建设网站轻量服务器wordpress
  • 国际摄影网站网站建设冒用身份信息
  • 一定要知道的网站中国纪检监察报社长
  • 荆州网站建设 众火网北京高端网页制作
  • 现在做网站建设的公司多么成都计算机培训机构排名前十
  • 自己做的网站如何上传文件wordpress数据库连接时错误
  • 海南千筑建设工程有限公司网站广西建设厅网站
  • php网站开发需要学哪些开发大型网站
  • 济南网站建设(选 聚搜网络)企业网站的常见类型有
  • 互联网网站制作大学学术建设专题网站
  • 用wps网站栏目做树形结构图张店网站建设方案
  • 网站站点查询网站建设包括哪些流程
  • 用jsp做网站的难点网店推广的平台有哪些
  • 电子商务网站建设与管理相关论文合肥网络推广费用
  • 将任意网站提交给google搜索引擎腾讯风铃wordpress
  • 站外推广方式360搜索网站提交
  • 商城模板网站模板wordpress谷歌字体
  • 怎么建设网站容易被百度抓取邯郸微信推广平台
  • 东莞专业建网站网站建设大概好多钱
  • 个人做民宿需要建立网站吗怎么做网站呀
  • 卖服务器网站源码网页设计代码大全表单
  • 甘肃网站怎样备案公司官网制作百度
  • 江门专业网站制作公司怎么更改网页上的内容
  • 桂林网站建设 腾云应不应该购买老域名建设新网站
  • 成都建工雅安建设有限责任公司网站工程公司会计账务处理
  • 网站建设基础资料品牌建设部门工作职责与分工