C++ createthread简单使用
在 C++ 中使用 CreateThread() 函数可以创建一个新线程。以下是使用 CreateThread() 函数的基本示例:
#include <Windows.h> #include <iostream> using namespace std; // 线程入口函数 DWORD WINAPI MyThread(LPVOID lpParam) { for (int i = 0; i < 10; i++) { cout << "Child thread: " << i << endl; Sleep(1000); } return 0; } int main() { HANDLE hThread = CreateThread(NULL, 0, MyThread, NULL, 0, NULL); if (hThread == NULL) { cout << "Failed to create thread" << endl; return 1; } for (int i = 0; i < 10; i++) { cout << "Main thread: " << i << endl; Sleep(1000); } WaitForSingleObject(hThread, INFINITE); CloseHandle(hThread); return 0; }
上述示例中,我们定义了一个线程入口函数 MyThread(),将其传递给 CreateThread() 函数以创建一个新线程。
CreateThread() 函数的第一个参数指定线程安全属性,可以设置为 NULL 或 SECURITY_ATTRIBUTES 的指针。
第二个参数指定堆栈空间大小,可以设置为 0 默认使用父线程的堆栈空间大小。
第三个参数是线程入口函数指针。
第四个参数是传递给线程入口函数的参数,通常是结构体类型的指针。
第五个参数是线程创建后执行的初始状态,可以设置为 0 默认立即执行。
第六个参数是线程 ID,通常设置为 NULL。
需要注意的是,在使用 CreateThread() 函数创建线程时,线程很快地结束可能会导致内存泄露或其他问题。因此,我们需要使用 WaitForSingleObject() 函数等待线程结束,并释放相关资源。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)