1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| #include <Windows.h> #include <iostream> using namespace std;
DWORD WINAPI ThreadFun(LPVOID lpThreadParameter);
int main() { cout << "主线程开始" << endl; HANDLE hThread1 = CreateThread(NULL, 0, ThreadFun, (LPVOID)"a", 0, NULL); HANDLE hThread2 = CreateThread(NULL, 0, ThreadFun, (LPVOID)"b", 0, NULL); HANDLE hThread3 = CreateThread(NULL, 0, ThreadFun, (LPVOID)"c", 0, NULL); HANDLE handlesArr[] = { hThread1,hThread2,hThread3 }; DWORD ret = WaitForMultipleObjects(3, handlesArr, true, INFINITE); DWORD ret = WaitForMultipleObjects(3, handlesArr, false, INFINITE); cout << ret << endl; cout << "主线程结尾!" << endl; getchar(); }
DWORD WINAPI ThreadFun(LPVOID lpThreadParameter) { char* p = (char*)lpThreadParameter; if (strcmp(p,"a")) { Sleep(1000); } if (strcmp(p, "b")) { Sleep(2000); } if (strcmp(p, "c")) { Sleep(3000); } cout << p << endl; return 0; }
|