
Windows
文章平均质量分 80
qzh
以后再填了。。。
展开
-
线程同步
用户方式中的线程同步一、原子访问:互锁的函数家族原子访问:线程在访问资源时能够确保所有其他线程都不在同一时间内访问相同的资源。使一个变量的值递增,返回初始值:LONG InterlockedExchangeAdd(PLONG plAddend, LONG lIncrement);注意:第二个参数传递一个负值将减去一个值。用第二个参数中传递的值来取代第一个参数中传递原创 2008-07-24 15:28:00 · 437 阅读 · 0 评论 -
线程与内核对象的同步
虽然用户方式的线程同步机制具有速度快的优点,但是它也有其局限性。对于许多应用程序来说,这种机制是不适用的。例如,互锁函数家族只能在单值上运行,根本无法使线程进入等待状态。可以使用关键代码段使线程进入等待状态,但是只能用这些代码段对单个进程中的线程实施同步。还有,使用关键代码段时,很容易陷入死锁状态,因为在等待进入关键代码段时无法设定超时值。 内核对象机制的适应性远远优于用户方式机原创 2008-07-24 15:30:00 · 646 阅读 · 0 评论 -
线程基础知识
一、进程由两部分组成,一个是进程内核对象,另一个是地址空间。同样线程也是由两部分组成的:一个是线程的内核对象,另一个是线程堆栈。二、线程的进入点函数每个线程必须拥有一个进入点函数,线程从这个进入点开始运行。主线程的进入点函数:即main、wmain、WinMain或wWinMain。辅助线程的进入点函数的原型: DWORD WINAPI ThreadFunc(PVOID pvPa原创 2008-07-24 15:16:00 · 412 阅读 · 0 评论 -
线程调度
一、暂停计数在线程内核对象的内部有一个值,用于指明线程的暂停计数。当调用CreateProcess或CreateThread函数时,就创建了线程的内核对象,并将暂停计数初始化为1,防止被CPU调度。在线程初始化好之后,如果有CREATE_SUSPENDED标志,就退出创建函数。否则,将暂停计数递减为0.二、恢复运行 DWORD ResumeThread(HANDL原创 2008-07-24 15:25:00 · 722 阅读 · 0 评论