windows多线程编程(二)

本文介绍在Windows环境下如何创建多线程,包括使用CreateThread函数创建线程的具体步骤及注意事项,如共享变量声明、线程句柄与ID声明、线程函数编写等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

二、Windows多线程编程之创建线程

注意事项:

(1)                    如果有共享变量,则一定要声明为volatile类型,比如多线程并发的控制变量

(2)                    声明生成线程后的线程句柄HANDLE hThread和所创建线程的生成的线程id DWORD ThreadId

(3)                    编写线程函数 ThreadFunc

hThread=CreateThread(NULL,

    0,

    (LPTHREAD_START_ROUTINE)ThreadFunc,

    NULL,

    0,

&ThreadID);

函数原型为HANDLE CreateThread(LPSECURITY_ATTRIBUTESlpThreadAttributes,

                DWORD dwStackSize,

                LPTHREAD_START_ROUTINE lpStartAddress,

                LPVOID lpParameter,

                DWORD dwCreationFlags,

                LPDWORD lpThreadId);

该函数在其调用进程的进程空间里创建一个新的线程,并返回已建线程的句柄,其中各参数说明如下:

  • lpThreadAttributes:指向一个SECURITY_ATTRIBUTES 结构的指针,该结构决定了线程的安全属性,一般置为 NULL
  • dwStackSize:指定了线程的堆栈深度,一般都设置为0
  • lpStartAddress:表示新线程开始执行时代码所在函数的地址,即线程的起始地址。一般情况为(LPTHREAD_START_ROUTINE)ThreadFuncThreadFunc 是线程函数名;
  • lpParameter:指定了线程执行时传送给线程的32位参数,即线程函数的参数;
  • dwCreationFlags:控制线程创建的附加标志,可以取两种值。如果该参数为0,线程在被创建后就会立即开始执行;如果该参数为CREATE_SUSPENDED,则系统产生线程后,该线程处于挂起状态,并不马上执行,直至函数ResumeThread被调用;
  • lpThreadId:该参数返回所创建线程的ID

如果创建成功则返回线程的句柄,否则返回NULL

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值