易截截图软件、单文件、免安装、纯绿色、仅160KB

Windows via C/C++:线程调度——概述

基于优先级的操作系统(preemptive operating system)必须使用某种算法以决定CPU如何调度系统中的线程,本章将讨论Windows Vista使用的调度算法。 我们之前讨论过线程的上下文结构CONTEXT,其中含有线程最后一次执行时CPU寄存器组的状态。 操作系统每20毫秒检查系统中所有线程内核对象的状态,其中一些对象被认为是可调度(scheduable)的,操作系统会从可调度的对象中选择一个,并将其CONTEXT中的值加载到CPU寄存器组中,这个实现线程调度的过程被称为上下文切换(Context Switch)。
接下来,被选择的线程将在其进程地址空间中执行代码、操作数据。大概20ms之后,Windows会重新将CPU寄存器组的状态写回到该线程的CONTEXT结构中,并从其它可调度的线程内核对象中选择一个要调度的对象,将其CONTEXT结构内容加载到CPU寄存器中,这样原线程将不再运行,新线程开始运行。上下文切换会从系统启动开始持续到系统关闭。
系统只会调度可调度的线程,但事实上系统中的大多数线程都是不可高度的。比如,有些线程的暂停计数(suspend count)大于0,这意味着线程被挂起且不应该为其分配任何CPU时间,为了挂起一个线程,可以在创建线程时为CreateThread指定CREATE_SUSPEND标志,本章后面会讨论挂起已存在线程的方法(SuspendThread和ResumeThread函数)。
除了挂起的线程,其它线程可能会因为在等待某些资源而变得不可调度。比如,你打开了记事本之后什么也不做,记事本线程将处于等待状态,系统不会为直分配时间片,除非你移动其窗口或向其编辑区中键入文本,此时记事本线程变成可调度的,但这并不意味着它会立即获得CPU时间,系统只是从所有可调度的线程中按调度算法挑选一个线程执行,被调度的线程不一定会是记事本线程。


相关文档:

Delphi 与 C/C++ 数据类型对照表

Delphi 与 C/C++ 数据类型对照表
Delphi数据类型C/C++
ShorInt
8位有符号整数
char
Byte
8位无符号整数
BYTE,unsigned short
SmallInt
16位有符号整数
short
Word
16位无符号整数
unsigned short
Integer,LongInt
32位有符号整数
int,long
Cardinal,LongWord/DWORD
32位无符号整数
unsigned long
Int6 ......

Python嵌入C++详解(1)

来CSDN的时候,刚刚接触Python,那时候对Python的嵌入部分很感兴趣,只是一直没有时间来弄清其面纱,因此也一直没有使用嵌入的功能,另一个原因是我还没有真正用Python写过一个正式的有用点的东西,不过,现在回过头来继续看这一部分,发现还是挺简单的。以前想把这部分翻译出来,可是由于时间原因,也没有那精力,所以这里 ......

C/S与B/S

 B/S结构,即Browser/Server(浏览器/服务器
)结构,是随着
Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是
主要事务逻辑在服务器
端实现,形成所谓
3-tier结构。B/S结构,主要是利用了不断成熟的WWW浏览器技术,结合浏览器的 ......

c/c++文件读写操作总结

在编程的过程中,文件的操作是一个经常用到的问题,在C++Builder中,可以使用多种方法对文件操作,下面我就按以下几个部分对此作详细介绍,就是:
 
1、基于C的文件操作;
2、基于C++的文件操作;
3、基于WINAPI的文件操作;
4、基于BCB库的文件操作;
5、特殊文件的操作。
 
壹、基于C的文件操作
  在A ......

Boost Python 实现C调用python错误解决方法

由于Boost Python跟不上Python版本更新,如下方法调用可能产生TypeError: 'NoneType' object does not support item assignment异常。
Boost Python文档中例子可能产生异常。
Py_Initialize();
object main_module = import("__main__");
object main_dict = main_module.attr("__dict__");
try{
   object ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号