|
|
发表于 2007-6-4 03:23:00
|
显示全部楼层
Re:多线程程序对单核有没有帮助??
这有什么好争论的.
又不是没学过操作系统, 多线程很多时候,并不是为了"并行", 而是为了不"阻塞".
比如等待用户输入就是一种阻塞, 你要用后台线程来多利用点cpu, cpu会给你分配时间片( 等待只会分配给其他程序时间,对你这个程序的整体进度没帮助, 多线程就是一个抢占时间的手段).
"并行" 的去做同一件事,是很少有的,也是很难用算法来描述的, 比如并行的解压文件, 这个就是做同时一件事,但是有效利用了双核的同时运行两个线程的特性(否则最多只能发挥cpu 50%),提高整体效率,但是我想这种情况非常少, 同时也很难开发.
多线程主要的用途, 是做不同的事情, 一个事情和另一个事情可以说是不相干的,或者某段时间是不相干的, 这时候就用多线程, 但是为了减少开发的难度, 或者减少同时运行的线程数(因为线程也是有代价的), 可以合并一些,直接用一个后台线程来处理几个不相干的事情.
尤其在多用户,和前台后台概念很清楚的场合, 多线程用得比较多.
|
|