同时,线程的状态有下面几种:
调度算法 Scheduler
只管理 Tid ,和线程并没有关系。因此,我们使用线程池 来给线程和 Tid 建立联系,将 Scheduler
的 Tid 调度变成线程调度。 事实上,每个线程刚被创建时并没有一个 Tid ,这是线程池给线程分配的。
- alloc_tid:为新线程分配一个新的 Tid
- add:添加一个可立即开始运行的线程
- retrieve:让当前线程交出 CPU 资源
- tick:时钟中断时查看当前所运行线程是否要切换出去
- exit:退出线程
下面,我们依次来看看线程池的方法: