继续多线程的学习。

CreateThread 函数原型如下:

参数解析:

lpThreadAttributes //指向SECURITY_ATTRIBUTES结构体的指针。可以为其传递NULL,让该线程使用默认的安全性。

dwStackSize //设置线程初始栈的大小,即线程可以将多少地址空间用于它自己的栈,以字节为单位。系统会把这个参数值四舍五入成为最接近的页面的大小。如果这个值为0,或者小于默认提交的大小,那么默认将使用与调用该函数的线程相同的栈空间大小。

lpStartAddress //指向应用程序定义的LPTHREAD_START_ROUTINE类型的函数指针,这个函数将由新线程执行,表明新线程的起始地址。main函数是主线程的入口函数,同样的地,新创建的线程也需要有一个入口函数,这个函数的地址就由此参数指定。这就要求必须在程序中定义一个函数作为新线程的入口函数,该函数名称任意,但是函数类型必须遵照下面的声明形式:

lpParameter //main函数可以接受命令行参数,同样我们可以通过这个参数给创建的新线程传递参数。该参数提供了一种将初始化值传递给线程函数的手段。这个参数的值既可以是一个数值,也可以是一个指向其他信息的指针。

dwCreationFlags //设置用于线程控制的附加标记。它可以是两值中的一个:CREATE_SUSPENDED 或 0.如果该值是CREATE_SUSPENDED,那么线程创建后处于暂停状态,直到程序调用了ResumeThread函数为止。如果该值是0,那么线程在创建之后就立即运行。

lpThreadId //这个参数是一个返回值,它指向一个变量,用来接收线程ID.当创建一个线程时,系统会为该线程分配一个ID。如果这个值为NULL,则表明不需要返回线程ID.

 

简单实例:

模拟售票实例:

 

12月21日.多线程学习笔记(二)
Tagged on:         
0 0 投票数
Article Rating
订阅评论
提醒

0 评论
最新
最旧 最多投票
内联反馈
查看所有评论