一个面试问题想请教一下-线程数是否开得越多越好

sweetchild1985 2014-03-20 01:08:58
电话面试的面试题,有一个线程负责读取任务数据放到内存队列,现在开了50个线程做任务处理,然后面试官就问任务处理线程是否越多越好,不考虑内存限制,也不考虑线程间的资源争夺。这道题更像是开放性的题目,我能想到的是内存限制和资源争夺,除此之外还需要考虑哪些因素?线程调度所消耗的时间?
...全文
1647 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
日知己所无 2014-03-20
  • 打赏
  • 举报
回复
这道题绝对不能回答:线程数开得越多越好
teenth 2014-03-20
  • 打赏
  • 举报
回复
肯定是不能越多越好,楼上说的对
insulator2008 2014-03-20
  • 打赏
  • 举报
回复
单反遇到类似的问题回答一般都是辩证的,绝对的答案一般都是有问题的。
sweetchild1985 2014-03-20
  • 打赏
  • 举报
回复
引用 7 楼 lixiaohua886 的回复:
看看计算机操作系统通,在不考虑你上面说的情况下,现成切换是有代价的。过多的现成,频繁的切换只会浪费时间。现成的数量 根据实际独立任务的数量作参考,另外,还需要看服务器的配置;
嗯,切换是有代价,这个也是需要考虑的,需要看服务器的CPU核数,绑定CPU也是一个方法,避免数据飘移。
sweetchild1985 2014-03-20
  • 打赏
  • 举报
回复
引用 5 楼 suciver 的回复:
线程主要和CPU挂钩的。cpu飙到100%了你内存再大有毛用
CPU确实也是一个考虑的因素,总结下来,除了内存,线程间资源竞争外,还需要考虑操作系统对线程数的限制,以及CPU的因素。 可能这样的回答面试官应该是比较满意了。 但总觉得这里面可能有些更深层次的问题,与JAVA运行环境有关。 对于有同学说根据业务来决定线程数,我也是这么回答的,不过面试官主要还是把问题引导到是否越大越好,他应该更多的是想考面试者对这方面的思考,已经抛开业务了。
木鱼121 2014-03-20
  • 打赏
  • 举报
回复
看看计算机操作系统通,在不考虑你上面说的情况下,现成切换是有代价的。过多的现成,频繁的切换只会浪费时间。现成的数量 根据实际独立任务的数量作参考,另外,还需要看服务器的配置;
苦瓜_Young 2014-03-20
  • 打赏
  • 举报
回复
线程是根据你的具体情况来开的 ~这东西不是钱 越多越好
suciver 2014-03-20
  • 打赏
  • 举报
回复
线程主要和CPU挂钩的。cpu飙到100%了你内存再大有毛用
兔子党 2014-03-20
  • 打赏
  • 举报
回复
能完成任务不就行了?
lliiqiang 2014-03-20
  • 打赏
  • 举报
回复
我觉得线程多几个没有什么
sweetchild1985 2014-03-20
  • 打赏
  • 举报
回复
引用 1 楼 longtian1213 的回复:
肯定不能越多越好的,操作系统对你能开多少线程都是有限制的!
嗯,这确实是需要考虑的一个因素
S117 2014-03-20
  • 打赏
  • 举报
回复
肯定不能越多越好的,操作系统对你能开多少线程都是有限制的!

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧