- 博客(9)
- 资源 (6)
- 收藏
- 关注
原创 学习笔记之用户模式下的线程同步
当所有线程都能够独立运行而不需要相互通信的时候,Microsoft Windows将进入最佳运行状态。但是,很少有线程能够总是独立运行,通常创建线程是为了处理某些任务,当任务完成时,另一个线程将要得到通知。这就将会照成资源竞争的状况。 在下面两种情况,线程需要线程同步。 1. 需要让多个线程同时访问一个共享资源,同时不能破坏资源的完整性。 2. 一个线程需要通知其他线程某项任务完成时 线程
2012-12-29 19:19:17
308
原创 学习笔记之线程调度、优先级和关联性
线程调度 每一个线程都有一个上下文(CONTEXT结构),它保存在线程内核对象中。这个上下文反映了上一次执行时CPU寄存器的状态。在相同线程优先级的情况下,大约每隔20ms,系统就会扫描所有当前存在的线程内核对象。在这些线程内核对象中,找到一个可调度的线程内核对象,将其上下文的值载入CPU寄存器,以使线程得以执行。这个称为线程上下文切换。 整体流程是:当一个线程执行到一个CPU时间片结束时,线
2012-12-25 18:34:19
1868
原创 学习笔记之进程
每一个进程都有两部分: 内核对象:操作系统用来管理进程。保存进程统计信息。 地址空间:包含所有可执行文件或dll模块的代码和数据。还有动态内存分配。 进程不执行任何代码,都必须让一个线程在它的上下文运行。由于进程的所有线程都在进程的地址空间执行代码。所有每个线程都有自己的一组CPU寄存器和它自己的堆栈。由于进程不执行任何代码,所有每一个进程至少有一个线程,我们称为主线程。当我创建进程时,系统
2012-12-22 08:58:04
439
原创 学习笔记之内核对象
内核对象的基本定义 作为windows软件开发人员,我们经常要创建、打开和处理内核对象。每个内核对象都只是一个内存块,它有操作系统分配,并只能由操作系统内核访问。这个内存块是一个数据结构,维护着与对象相关的信息。少数成员(安全描述符和使用计数等)是所有对象都有的,但大多数成员都是不同类型的内核对象所特有的。 由于内核对象的数据结构只能由操作系统内核访问,那我们如何操纵这些内核对象呢?答案是我们
2012-12-21 13:44:10
359
原创 学习笔记之字符和字符串处理
在编程中使用的字符和字符串形式归结于两种:ANSI和Unicode。由于Unicode字符字符串在国际上更通用,以及有利于COM和.NET Frameword进行互操作,更好的防范了缓冲区溢出的问题,所以编程中极力推荐使用Unicode字符和字符串。 ANSI中的字符和字符串为一个字节的char类型,而Unicode中的字符和字符串为两个字节的wchar_t内建数据类型。他们的常见使用方式为:
2012-12-18 18:57:53
444
原创 学习笔记之错误处理
错误处理机制: 当调用windows函数时,它会先检验我们传递给它的参数,然后才开始执行任务。如果传入的参数无效或者由于其他原因导致操作系统无法执行,则函数的返回值将指出函数因为某些原因失败了。而当调用windows函数检测到错误时,它会使用一种名为“线程本地存储区”的机制将相应的错误码与“主调线程”想关联。(即学习笔记之线程基础所说,每一个线程都有自己的数据存储区,而函数将其错误码填入线程的数
2012-12-18 16:16:59
268
原创 c++学习笔记之线程基础
线程由两部分组成: 线程内核对象, 系统用此来管理线程,存放线程统计信息和线程上下文(指令指针寄存器、栈指针寄存器、其他存储器)。 线程栈, 用来维护线程执行时所需要的局部变量和函数的参数。 创建线程和创建进程的优劣: 进程与线程相比,进程耗费的系统资源更多,原因在于地址空间,系统会为进程创建一个虚拟的地址空间。 创建进程会发生大量记录活动,而线程不会涉及记录活动,所以创建进程会用到大量
2012-12-17 23:06:21
311
原创 继承与虚函数
昨天我看孙鑫的视频第三课(MFC的来龙去脉),在孙鑫讲到CWinApp的构造函数时,函数内部有个pThreadState->m_pCurrentWinThread= this; 孙鑫强调这里的this是指的子类的对象的指针,还叫我们下来自己做个测试程序。 然后我自己做了个测试程序: #include "stdafx.h" #include #include using na
2011-12-30 14:29:55
309
原创 谈谈新手接触ADO.NET数据库的一些问题
首先要声明下,我是一个新手,这篇博客是我的第一篇博客,很多地方肯定说的不是很清楚也不是很明朗,表达肯定也不是很明确,请大家包涵,望大家多多指出我的不足,我勇于改正。好了,言归正传,说说我新手接触ADO.NET数据库遇到的一些问题吧。 我昨天、今天看了两天的的ADO.NET数
2011-09-01 02:52:57
408
[Visual.C++编程技巧精选200例]6.rar
2011-04-08
[Visual.C++编程技巧精选200例]5.rar
2011-04-08
[Visual.C++编程技巧精选200例]5.rar
2011-04-08
[Visual.C..编程技巧精选200例]3
2011-04-08
[Visual.C..编程技巧精选200例]2.rar
2011-04-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人