pthread_create循环创建线程
时间: 2023-11-08 14:59:56 浏览: 123
可以使用循环来创建多个线程,每次循环调用pthread_create函数即可。以下是一个示例代码:
```c
#include <stdio.h>
#include <pthread.h>
#define NUM_THREADS 5
void* threadFunc(void* arg) {
int threadNum = *(int*)arg;
printf("Thread %d is running\n", threadNum);
pthread_exit(NULL);
}
int main() {
pthread_t threads[NUM_THREADS];
int threadArgs[NUM_THREADS];
for (int i = 0; i < NUM_THREADS; ++i) {
threadArgs[i] = i;
int rc = pthread_create(&threads[i], NULL, threadFunc, &threadArgs[i]);
if (rc) {
printf("Error creating thread %d\n", i);
return -1;
}
}
// 等待所有线程结束
for (int i = 0; i < NUM_THREADS; ++i) {
pthread_join(threads[i], NULL);
}
return 0;
}
```
这个示例中,我们定义了一个包含5个元素的线程数组和一个包含5个整数的参数数组。在循环中,我们为每个线程分配一个唯一的参数值,并将线程函数和参数值传递给pthread_create函数。然后,我们使用pthread_join函数等待所有线程结束。
阅读全文