13-线程入门
线程入门
如果任务只是顺序执行是不合理的,应该能同时进行。由此引入多线程。
一个进程可以有多个线程。
使用多线程的好处:
-
避免阻塞
-
避免CPU空转
-
提升效率
1.线程创建函数
头文件process.h
1.1CreateThread函数
CreateThread 是一种微软在 Windows API 中提供了建立新的线程的函数,该函数在主线程的基础上创建一个新线程。线程终止运行后,线程对象仍然在系统中,必须通过CloseHandle 函数来关闭该线程对象。
HANDLE CreateThread( |
参数:
-
lpThreadAttributes 表示线程内核对象的安全属性,一般传入NULL 表示使用默认设置。
-
dwStackSize 表示线程栈空间大小。传入 0 表示使用默认大小(1MB)。
-
lpStartAddress 表示新线程所执行的线程函数地址,多个线程可以使用同一个函数地址。
-
lpParameter 是传给线程函数的参数。
-
dwCreationFlags 指定额外的标志来控制线程的创建,为 0 表示线程创建之后立即就可以进行调度,如果为 CREATE_SUSPENDED 则表示线程创建后暂停运行,这样它就无法调度,直到调用 ResumeThread()。
-
lpThreadId 将返回线程的 ID 号,传入 NULL 表示不需要返回该线程 ID 号
返回值:
-
对应的线程句柄
1.2_beginthreadex函数(底层是CreateThread,封装了容错,因此传参和CreateThread基本一致)
unsigned long _beginthreadex( |
返回值:
-
成功返回线程句柄,失败返回0
注:__stdcall见第一节
发布于