一些问题一:vs相关、dll相关、编译相关
编译相关 #pragma init_seg 概述 是微软C++编译器中的一个编译指令,专门用于精细控制全局静态对象(包括静态变量)的构造和析构顺序 在解决复杂的初始化依赖或DLL加载问题时非常有用 语法 优先级 compiler 最高优先级 此组别的对象最先构造,最后析构 通常保...
编译相关 #pragma init_seg 概述 是微软C++编译器中的一个编译指令,专门用于精细控制全局静态对象(包括静态变量)的构造和析构顺序 在解决复杂的初始化依赖或DLL加载问题时非常有用 语法 优先级 compiler 最高优先级 此组别的对象最先构造,最后析构 通常保...
概述 Windows 是事件驱动的,事件驱动围绕着消息的产生与处理展开,事件驱动是靠消息循环机制来实现的。也可以理解为消息是一种报告有关事件发生的通知。 消息(Message)指的就是Windows 操作系统发给应用程序的一个通告,它告诉应用程序某个特定的事件发生了。 比如,用户...
Windows进程线程模型 进程 概述 Windows中进程是程序执行的实例,包含代码、数据、资源(如内存、文件句柄)以及独立的内存空间 每个进程拥有唯一的进程环境块(PEB),用于维护进程状态和资源信息 进程内核对象(PCB) 由内核管理的不可见数据结构,记录进程优先级、状态(...
关键段 概述 critical section是一小段代码,它在执行之前需要独占对一些共享资源的访问权。 这种方式可以让多行代码以“原子方式”来对资源进行操控。 这里的原子方式,是指除了当前线程之外,没有其他任何线程会同时访问该资源。 当然,系统仍然可以暂停当前线程去调度其他线程...
字节 char char是c++里面基本的字符类型,通常用来表示单个字节 这大多数现代系统中,一个char占用1个字节,1个字节是8个位 char可以用来表示ascii字符集中的字符,其中每个字符都可以用一个字节来表示 ascii编码覆盖了英文字母、数字和一些基本的符号 但是在全...
MFT 所有数据的逻辑起点 在 NTFS 卷中,所有对象(包括文件、目录、系统数据)均以“文件”形式存在,而 MFT 正是这些文件的全局索引库 系统启动依赖: 系统启动时需先读取 Boot文件(引导扇区),而Boot 的位置信息由 MFT 记录 7 描述,形成“MFT → 引导程...
概述 在调度程序给另一个可调度线程分配CPU之前,CPU可以运行一个线程大约20ms。 这是在所有线程的优先级都相同的情况下。实际上,线程间的优先级是不同的。 每个线程都会被赋予0(最低)到31(最高)的优先级数。 当系统确定给哪个线程分配CPU时,它会首先查看优先级为31的线程...
线程调度概述 每个线程都有一个上下文,这个上下文保存在内核对象中。它反应了线程上一次执行时CPU寄存器的状态。 大概每个20ms(GetSystemTimeAdjustment函数的第二个参数的返回值),Windows都会查看所有当前存在的线程内核对象。 这些对象中,只有一些被认...
概述 在Windows应用程序中,我们可以给每个线程指定一个处理器,这样在多个处理器的机器上就可以同时执行多个操作,从而提高吞吐量。 但是,当一个线程发出一个同步I/O请求的时候,它就会被临时挂起,知道设备完成I/O请求为止。此类挂起会影响性能,因为线程卡在那里不能做别的事情。 ...
搜索当前分类