如何用C++创建100个线程?
给出代码,最好不用线程池,非常感谢!
[解决办法]
#include <stdio.h>#include <windows.h>void ThreadFunc(LPVOID pParam){ printf("Thread %d is created!\n",pParam);}int main(int argc,char *argv[]){ HANDLE hThread; DWORD dwThreadId; for(int i = 0;i < 100;++i){ hThread = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)ThreadFunc,(LPVOID)(i+1),0,&dwThreadId); //这里用线程句柄干一些事 } return 0;}
[解决办法]
windows,CreateThread循环100次
linux,pthread_create循环100次
[解决办法]
[code=C/C++][/code]//方案1#include <stdio.h>#include <windows.h>void a(int tid) { printf("%03d a\n",tid);}void b(int tid) { printf("%03d b\n",tid);}void ThreadFunc(LPVOID pParam){ int tid=(int)pParam; if (0==tid%2) a(tid); else b(tid);}int main(int argc,char *argv[]){ HANDLE hThread; DWORD dwThreadId; for(int i = 0;i < 100;++i){ hThread = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)ThreadFunc,(LPVOID)(i+1),0,&dwThreadId); } getchar(); return 0;}//和//方案2#include <stdio.h>#include <windows.h>void a(int tid) { printf("%03d a\n",tid);}void b(int tid) { printf("%03d b\n",tid);}void ThreadFuncA(LPVOID pParam){ a((int)pParam);}void ThreadFuncB(LPVOID pParam){ b((int)pParam);}int main(int argc,char *argv[]){ HANDLE hThread; DWORD dwThreadId; for(int i = 0;i < 100;++i){ if (0==(i+1)%2) { hThread = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)ThreadFuncA,(LPVOID)(i+1),0,&dwThreadId); } else { hThread = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)ThreadFuncB,(LPVOID)(i+1),0,&dwThreadId); } } getchar(); return 0;}//这两个方案有本质区别吗?我看是没有。