日期:2014-05-20  浏览次数:20599 次

一个面试问题想请教一下-线程数是否开得越多越好
本帖最后由 sweetchild1985 于 2014-03-20 13:09:38 编辑
电话面试的面试题,有一个线程负责读取任务数据放到内存队列,现在开了50个线程做任务处理,然后面试官就问任务处理线程是否越多越好,不考虑内存限制,也不考虑线程间的资源争夺。这道题更像是开放性的题目,我能想到的是内存限制和资源争夺,除此之外还需要考虑哪些因素?线程调度所消耗的时间?
------解决方案--------------------
肯定不能越多越好的,操作系统对你能开多少线程都是有限制的!
------解决方案--------------------
线程主要和CPU挂钩的。cpu飙到100%了你内存再大有毛用
------解决方案--------------------
看看计算机操作系统通,在不考虑你上面说的情况下,现成切换是有代价的。过多的现成,频繁的切换只会浪费时间。现成的数量 根据实际独立任务的数量作参考,另外,还需要看服务器的配置;
------解决方案--------------------
单反遇到类似的问题回答一般都是辩证的,绝对的答案一般都是有问题的。