怎么循环建立多个线程
请问怎么在一个循环语句中建立线程?就是每循环一次建立一个线程,并且已建立的线程不关闭
例如:
- C/C++ code
for(int i=0;i<5;i++){ pthread_create(); //这行代码该怎么写才能在循环结束之后创建了5个线程?}[解决办法]
pthread_t a_thread[5];
if (pthread_create(&a_thread[i], NULL, /*注释*/, (void *)message) < 0)
/*使用缺省属性创建线程*/
{
perror(“fail to pthread_create”);
exit(-1);
}
注释部分可以用一个函数指针数组;
我是这么想的~~~~~
[解决办法]
不知道楼主要的是不是这个效果,简单写了个例子:
- C/C++ code
#include <unistd.h>#include <pthread.h>#include <stdio.h>void *ping_pthead(void* arg){ while(1) { int id = arg; printf("arg = %d, ping\n", id); sleep(2); }}int main(int argc, char** argv){ pthread_t pid[5]; int i = 0; for (i = 0; i < 5; i++) { pthread_create(&pid[i], NULL, ping_pthead, (void*)i); sleep(1); printf("i=%d\n", i); } printf("............\n"); for (i = 0; i < 5; i++) { pthread_join(pid[i], NULL); } return 0;}