字体
第(3/5)页
关灯
   存书签 书架管理 返回目录
 将在下一节详细介绍。

    9.3 线程的cāo作

    本小节介绍Windows 线程的cāo作方法,包括线程的创建、线程的管理、线程的同步、线

    程的终止等。

    9.3.1 线程的创建

    线程的创建方法有3 种,分别介绍如下:

    1.调用Win32API 函数CreateThread 和CreateRemoteThread

    (1)CreateThread

    函数CreateThread 用来创建线程。如果调用成功则返回非0,否则返回0。它的函数原型

    如下:

    HANDLE CreateThread(

    LPSECURITY_ATTRIBUTES lpThreadAttributes,

    SIZE_T dwStackSize,

    LPTHREAD_START_ROUTINE lpStartAddress,

    LPVOID lpParcomter,

    DWORD dwCreationFlags,

    枫叶文学网www.fywxw.com

    第9 章 多线程

    ·209·

    LPDWORD lpThreadId

    );

    函数中主要参数的意义如下:

    ? lpThreadAttributes:指向SECURITY_ATTRIBUTES结构的指针,决定返回的句柄是否

    可以被继承。

    ? dwStackSize:设定堆栈的大小。

    ? lpStartAddress:线程函数的名称,它的参数是第4 个参数。

    ? lpParcomter:线程函数的参数。

    ? dwCreationFlags:线程创建标志。如果是CREATE_SUSPENDED,则线程的初始状态

    为挂起,直到调用了RescomThread 才开始执行,如果为0,线程创建后即开始执行。

    ? lpThreadId:存放线程标志的变量指针。

    (2)CreateRemoteThread

    函数CreateRemoteThread 用来创建在另外一个进程的虚拟空间中执行的线程,它的函数

    原型如下:

    HANDLE CreateRemoteThread(

    HANDLE hProcess,

    LPSECURITY_ATTRIBUTES lpThreadAttributes,

    SIZE_T dwStackSize,

    LPTHREAD_START_ROUTINE lpStartAddress,

    LPVOID lpParcomter,

    DWORD dwCreationFlags,

    LPDWORD lpThreadId

    );

    函数中主要参数的意义如下。

    ? hProcess:进程的句柄。

    ? lpThreadAttributes:指向SECURITY_ATTRIBUTES结构的指针,决定返回的句柄是否

    可以被继承。

    ? dwStackSize:设定堆栈的大小。

    ? lpStartAddress:线程函数的名称,它的参数是第四
上一页 目录 下一页