《Windows核心编程》之“线程调度和优先级”

  “线程调度和优先级”这一章主要讲解 Windows 的线程调度的机制,特别是线程上下文切换(context switch)。由于 Windows 并非“实时操作系统”,在线程调度方面留给程序员操作的空间很少,因此,这一章对实际编程的帮助并不大,如果仅仅是想了解一些基本原理,建议通读一遍即可,或者仅阅读前面 4 个小节。

    本章最重要的一个概念就是“线程上下文切换”(context switch),我们可以如下来理解它:

1. 操作系统将 CPU 时间“分片”去执行线程代码;

2. 从前一个“时间片”到后一个“时间片”,往往需要执行不同(进程)线程的代码;

3. 执行不同线程代码就意外这“线程上下文切换”

4. 线程上下文是保存在线程内核对象中的一个结构体——CONTEXT,这个 CONTEXT 保存的是线程上一次执行时 CPU 寄存器的状态。

5. “线程上下文切换”的实际就是线程的“时间片”到期后,操作系统将当前 CPU 寄存器状态保存到当前线程内核对象的 CONTEXT 结构体中,然后退出当前线程,再将下一个需要执行的线程的 CONTEXT 读取到 CPU 寄存器。

 

 

最后我将用一张思维导图来总结线程调度和优先级相关的知识点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值