关于抢占式任务切换的疑问
从win2K开始,操作系统开始根据线程优先级,进行抢占式的任务切换。也就是说,一个优先级为n的线程运行时,如果系统接到一个线程优先级为m(m>n)的线程请求,就会转到后者执行,而不管后面的线程和前者是否属于同一个进程。
但大家知道,进程的切换会给系统带来很多开销,所以,我不禁要产生的疑问是,为什么windows不先照顾同一个进程中的线程请求,等同一进程中所有线程都空闲了,再发生进程切换,并转到另一个进程中告优先级的线程中去。这样,不是更能符合调度程序,“在尽量少资源消耗下,调度最多线程“中旨吗?