线程的执行需要提供运算资源,而计算机最直接的运算资源,除了内存,就是CPU了。线程的执行需要占用CPU时间。操作系统为了模拟用户“看起来的并发",其底层其实是使用时间片轮询的策略,也就是,会将CPU时间切割成粒度较小的时间片,然后轮流提交到各个线程去执行,在用户可感知的时间内,每个线程也就都得到了运行的机会。
交给”各个线程枝肆“去执行,更确切的说法是,交给”各个等待运行的线程“去执行。而挂起线程,实际上,就是告诉操作系统,这个线程不活跃了,暂时不需要运算了,可以从上述的等待运行线程队列中去去掉,然后放入”挂起线程池“中,以后操作系统CPU调度的时候,就不再轮询到这个线程无谓浪费CPU时间了,可以让其他真正active的线程得到更充分的CPU运行时仿搭祥间。
那如果这个线程挂起后,在以后某一时刻想重新运行起来怎么办?这个时间就需要去唤醒这个线程了备搏,唤醒线程的过程,其实也就是从”挂起线程池“放入”等待运行的线程队列“过程,当CPU时间轮询到这个线程,就又可以愉快的玩耍了。
一般来说是降低线程对cpu的占用