线程创建
1,线程是附属在进程上的执行实体,是代码的执行流程;
2,一个进程可以包含多个线程,但一个进程至少要包含一个线程(主线程)
#include <Windows.h> DWORD WINAPI MyThread(LPVOID lpParameter) { //ziji de code } int main() { HANDLE hThread; hThread = CreateThread(NULL,0,MyThread,NULL,0,NULL);//如果不对线程操作,可以不拿句柄,传给线程的参数,要保证比线程存活时间更长 Sleep(5000);//main线程歇5秒 SuspendThread(hThread);//hThread线程挂起,不跑了先 //SuspendThread(hThread);//可以多次挂起,前面挂起几次,后面要释放几次,不然不跑 Sleep(5000);//main线程再歇5秒 ResumeThread(hThread);//hThread重新跑起来 CloseHandle(hThread);//线程只有在内核计数器为0&线程代码执行完以后,才会关闭,这里先把计数器复原 return 0; }
3,多线程的创建
#include <Windows.h> DWORD WINAPI MyThread(LPVOID lpParameter) { //ziji de code } int main() { HANDLE hThread1; HANDLE hThread2; //创建多个线程,可以使用同一份线程代码,创建的是不同的堆栈,下面都使用了MyThread线程函数的代码 hThread1 = CreateThread(NULL,0,MyThread,NULL,0,NULL); hThread2 = CreateThread(NULL,0,MyThread,NULL,0,NULL); CloseHandle(hThread1); CloseHandle(hThread2); return 0; }