多线程的切换机制是怎么样的多核心的任务分配机制是怎么样的

简单回答一下: 从数据上看线程就是一个比较大的堆栈: IO线程 1到2 M, UI线程 20M 。 线程启动就是分配好一个堆栈后,在它上面进行函数调用,执行压栈、出栈操作,当入口函数执行完成,那么线程就执行完成了。操作系统一般会提供一种功能:阻塞变量,当该变量被设置后,该线程就不会被加载到CPU,一直到其他线程对该组赛变量进行Set操作,让其进入挂起状态。在线程处于挂起状态时,堆栈的顶部就是CPU各个寄存器的值。线程由挂起状态,转变到运行状态,就是把栈顶的数据加载到CPU的过程。控制线程有多种算法,权重,运行时间等等,批处理机还有独占的。 硬件中断任务始终是优先级最高的任务,它用优先级就可以解释了,超线程可以让一个线程的任务在多个CPU运行。但这个总觉得有点坑,还是用多线程更靠谱。
■网友
这个你得去看《操作系统》哦,不同操作系统做法不同;还有《多核处理的艺术》


    推荐阅读