本章接着之前的介绍,来学习下协程的切换及调度
协程作为用户态线程,也是轻量级的线程,用来解决高并发场景下线程切换的资源开销。
操作系统调度的最小单位是线程,当操作系统调度到某个线程时,去执行这段子程序就行了。
而当线程执行过程中发生了阻塞(这里主要是阻塞IO操作),那么这个线程就会一直休眠直到条件就绪才会被重新调度执行。这时候就会产生调度的资源消耗。
解决这个问题的方法就是,我们假设存在一个任务池,里面包括很多个小任务。而线程就是去执行任务池中的某几个任务,当线程在执行其中某个任务时过程中发现IO条件未就绪时,该线程可以主动跳转去执行其他的任务;而当IO条件就绪后,线程又会跳回到之前的任务继续执行。