java中的线程与进程调度
调度时机
在进程的生命周期中,当进程从一个运行状态到另一个状态变化的时候,会触发一次调度。
这些状态变化的时候,操作系统需要考虑是否要让新的进程给CPU运行,或者是否让当前进程从CPU上退出而换另一个进程运行。
调度算法
如果硬件时钟提供某个频率的周期性中断,那么可以根据如何处理时钟中断,把调度方法分为两类
非抢占调度算法
挑选一个进程,然后让该进程运行直到被阻塞,或者直到该进程退出,才会调用另外一个进程,也就是说不理会时钟中断这个事情
抢占式调度算法
挑选一个进程,然后让进程只运行某段时间,时段结束时,把其挂起,然后再挑选另外一个进程。
需要在时间间隔的末端发生时钟中断,以便把CPU控制返回给调度程序进行调度。也就是时间片机制
采用这种方式主要是为了避免因为某个线程的原因阻塞整个进程