- 主题:Linux的任务调度,进程和线程有区别吗?
- 那可能要看代码才行了。
 
 简单的话,可以做个实验,其两个程序,一个单线程,一个多线程,看看是否获得同样的cpu时间。
 
 【 在 wjhtingerx 的大作中提到: 】
 : 我想知道的就是Linux这块具体怎么实现的了?
 :
 --
 FROM 114.242.248.*
 
- >> 系统调度看待这101个线程是完全平等的吗?
 是的,如果你没有额外的对线程优先级调度策略进行显式配置的话
 
 >> 进程多建线程,岂不是能获得更多的运行时间?
 是的,这就是多线程的优势
 --
 FROM 120.245.130.*
 
- 通常根据设计需要,选择不同的调度算法,满足设计要求。Linux 本身支持多种调度,这个问题没有前提,没有答案的。
 
 【 在 wjhtingerx 的大作中提到: 】
 : 假设A进程有100个线程,B进程有1个线程。那么系统调度看待这101个线程是完全平等的吗?这样的话,进程多建线程,岂不是能获得更多的运行时间?
 :
 --
 FROM 222.128.104.*
 
- 大体来讲,在不做额外干涉的情况下,多线程总体上获得计算资源是单线程的 N 倍。
 撇开调度算法本身,单线程只能用到一个 CPU 核心,多线程能够用到 N 个 CPU 核心。所以 CPU 资源有富余的情况下,必定是多线程占优。
 其次,原则上,线程和进程没有多大区别,只是多了个独立的地址空间而已。所以可以近似把多线程看做多进程。因此必定是多线程占优(不要抬杠,抬杠就是你对)。
 一般而言,没有特别的理由对多线程进行额外处理。
 --
 FROM 115.199.129.*