返回信息流前两天面试.. 面试官问了一个问题.
一个进程中应该有多少个线程是比较好的?
求高手指点..详细一些.~
这是一条镜像帖。来源:北邮人论坛 / soft-design / #39974同步于 2011/1/4
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SoftDesign机器人发帖
某面试题:一个进程中应该有多少个线程?
lixunhuan
2011/1/4镜像同步9 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
答案一: 不确定.要根据线程之间的工作状态以及资源状况进行分配.
答案二: 如果是CPU密集型线程.应该是CPu coreX2; 每个core独立运行一个线程. X2 保证当前进程获取运行的时间片提高一倍:
答案三: 考虑其他进程的线程强占,当前进程应该是越多越好..100个!
[ema23][ema23][ema23]
我觉得,开几个线程完全根据应用程序的需要和设计的复杂度来决定。
如果是计算敏感的任务,应该分配与当前系统中安装的CPU数目(多核按多处理器计)相同的线程。如果一味地提高线程数,反而会增加操作系统CPU调度的开销。至于lz所说,为了防止其他任务抢占CPU资源,正规的做法是调高该任务的进程/线程优先级。
如果是一些关系用户体验的程序,一般由一个线程负责人机界面,若干个工作线程负责具体的计算工作。
另外,雇用精通多线程编程的开发人员所带来的人力资源成本和调试多线程程序的时间开销也是这个问题需要考虑的!这也是现在国内小公司写的程序缺乏良好的多处理器支持的重要原因。