多线程的切换机制是怎么样的多核心的任务分配机制是怎么样的
简单回答一下: 从数据上看线程就是一个比较大的堆栈: IO线程 1到2 M, UI线程 20M 。 线程启动就是分配好一个堆栈后,在它上面进行函数调用,执行压栈、出栈操作,当入口函数执行完成,那么线程就执行完成了。操作系统一般会提供一种功能:阻塞变量,当该变量被设置后,该线程就不会被加载到CPU,一直到其他线程对该组赛变量进行Set操作,让其进入挂起状态。在线程处于挂起状态时,堆栈的顶部就是CPU各个寄存器的值。线程由挂起状态,转变到运行状态,就是把栈顶的数据加载到CPU的过程。控制线程有多种算法,权重,运行时间等等,批处理机还有独占的。 硬件中断任务始终是优先级最高的任务,它用优先级就可以解释了,超线程可以让一个线程的任务在多个CPU运行。但这个总觉得有点坑,还是用多线程更靠谱。
■网友
这个你得去看《操作系统》哦,不同操作系统做法不同;还有《多核处理的艺术》
推荐阅读
- 汽车|52秒下线一台汽车、1分钟生产线切换 广汽传祺打造自我感知工厂
- 火车上能建立wifi吗
- 区块链中merkle树是怎样验证的,它的具体运行机制是
- iOS 应用中推送(Push Notifications)的机制是怎么样的
- 守望先锋匹配机制怎么样的
- 能否在网页搜索中加入点赞机制,从而个性化搜索引擎
- 红灯|经常在D档N档之间切换伤车吗?你买的不是车,是“汽油爹”!
- 北京将推新机制:占用消防通道车辆,自付拖车费!
- 有一个想法:在不同的程序里,使用不用的输入法默认设置, 减少用户切换中英文的次数。大家感觉咋样
- 车道|车道自动切换了!苏州惊现神奇一幕!