多线程学习 笔记
(一) 线程概念
- 进程:进程指正在运行的程序。
- 线程:
线程是进程中的一个执行单元,负责当前进程中程序的执
行,一个进程中至少有一个线程。一个进程中是可以有多个线程的,
这个应用程序也可以称之为多线程程序。
线程(thread)是操作系统能够进行运算调度的最小单位。它被
包含在进程之中,是进程中的实际运作单位。
线程可以提高应用程序在多核环境下处理诸如文件 I/O 或者
socket I/O 等会产生堵塞的情况的表现性能。
(二) 线程常用函数
在 window 环境下,Win32 提供了一系列的 API 函数来完成线
程的创建、挂起、恢复、终结以及通信等工作。
1、创建一个新线程:CreateThread 函数;
2、结束一个线程:ExitThread 函数;
3、强行终止一个线程:TerminateThead 函数;
4、重启一个线程:ResumeThread 函数;
5、挂起一个线程:SuspendThread 函数;
(三) 函数说明
1、CreateThread 函数
- 基本语法:
HANDLE WINAPI CreateThread(
LPSECURITY_ATTRIBUTES lpThreadAttributes,
SIZE_T dwStackSize,
LPTHREAD_START_ROUTINE lpStartAddress,
LPVOIDlp Parameter,
DWORD dwCreationFlags,
LPDWORD lpThreadId
);
- 参数说明:
lpThreadAttributes:线程安全相关的属性,常置为 NULL;
dwStackSize:新线程的初始化栈的大小,可设置为 0;
lpStartAddress:被线程执行的回调函数,也称为线程函数;
Parameter:传入线程函数的参数,不需传递参数时为 NULL;
dwCreationFlags:控制线程创建的标志,为 0 表示线程创建之后立
即就可以进行调度;
lpThreadId:传出参数,用于获得线程 ID,如果为 NULL 则不返回
线程 ID;
(四) 线程函数
线程函数的规范格式定义&#x