创建简单线程 本例中创建三个子线程,main函数本身是主线程,主线程结束,子线程就跟着中止。 程序如下: #include < stdio.h > #include < windows.h > static int count1,count2,count3;DWORD WINAPI The_One(LPVOID no) ... { int i; for(i=0;i<5;i++) ...{ printf("I'm 1 /n"); count1++; Sleep(100);//控制快慢,执行速度中 } return 0;} DWORD WINAPI The_Two(LPVOID no) ... { int i; for(i=0;i<5;i++) ...{printf("I'm 2 /n"); count2++; Sleep(10);//控制快慢,执行速度快 } return 0;} DWORD WINAPI The_Three(LPVOID no) ... { int i; for(i=0;i<5;i++) ...{printf("I'm 3 /n"); count3++; Sleep(800);//控制快慢,执行速度慢 } return 0;} int main() ... { HANDLE thread[3];//建立三个线句柄(空指针) DWORD thread1id,thread2id,thread3id; thread[0]=CreateThread(NULL,0,The_One,NULL,0,&thread1id);//子线程一 if(thread[0]==NULL) ...{ printf("CreateThread for The_One Error: %d /n",GetLastError()); return -1; } thread[1]=CreateThread(NULL,0,The_Two,NULL,0,&thread2id);//子线程二 if(thread[1]==NULL) ...{ printf("CreateThread for The_Two Error: %d /n",GetLastError()); return -1; } thread[2]=CreateThread(NULL,0,The_Three,NULL,0,&thread3id);//子线程三 if(thread[2]==NULL) ...{ printf("CreateThread for The_Three Error: %d /n",GetLastError()); return -1; } //等待线程,0改成1或2看看效果 WaitForSingleObject(thread[1],INFINITE); CloseHandle(thread[0]);//关闭线程 CloseHandle(thread[1]); CloseHandle(thread[2]); printf("Thread1 count=%d/5 /n",count1); printf("Thread2 count=%d/5 /n",count2); printf("Thread3 count=%d/5 /n",count3); return 0;}