您的位置:首页 > 编程语言 > C语言/C++

C++ 线程操作

2016-04-23 06:29 381 查看

C++ 线程操作

包含的头文件

#include <Windows.h> //CreateThread的头文件
#include <process.h> //_beginthreadex的头文件


单线程

线程的函数

DWORD WINAPI ThreadFunc01(LPVOID pM)
{
while (1)
{
cout << "子线程的ID为 : " << GetCurrentThreadId() << endl;
Sleep(500);
}
return 0;
}


主函数

HANDLE hThread;
hThread = CreateThread(NULL, 0, ThreadFunc01, NULL, 0, NULL);
WaitForSingleObject( hThread, INFINITE );


多线程

线程的函数和上面的相同

主函数

HANDLE hThread[10];
for (int i = 0; i < 10; i++)
{
h[i] = CreateThread(NULL, 0, ThreadFunc01, NULL, 0, NULL);
}
WaitForMultipleObjects( 10, h, TRUE, INFINITE );


注:上述的多线程中输出的顺序并不确定。

_beginthreadex

线程的函数

unsigned int __stdcall ThreadFunc00(PVOID pM)
{
static int num = 0;
cout << "子线程的ID为 : " << GetCurrentThreadId() << ", num : " << num++ << endl;
return 0;
}


主函数

HANDLE h[10];

for (int j = 0; j < 10; j++)
{
h[j] = (HANDLE)_beginthreadex(NULL, 0, ThreadFunc00, NULL, 0, NULL);
}
WaitForMultipleObjects( 10, h, TRUE, INFINITE );
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: