如何在Linux环境下使用pthread_create创建多个线程,并使用pthread_join等待所有线程完成?
时间: 2024-11-05 10:16:40 浏览: 3
在Linux环境下,使用pthread_create创建多个线程并等待它们完成,通常需要在主线程中循环调用pthread_join,确保每个线程都被正确等待。以下是具体的操作步骤和示例代码:
参考资源链接:[Linux下使用pthread_create创建线程详解](https://wenku.csdn.net/doc/6412b53bbe7fbd1778d426b1?spm=1055.2569.3001.10343)
1. **定义线程函数**:首先定义你的线程函数,它应该接受一个void*类型的参数,并返回void*。
```c
void* thread_function(void* arg) {
// 线程工作代码...
return NULL; // 线程结束时返回NULL或具体的数据
}
```
2. **创建多个线程**:在主函数中,你可以使用循环来创建多个线程。使用pthread_t数组来存储每个线程的标识符。
```c
#define NUM_THREADS 10
pthread_t threads[NUM_THREADS]; // 存储线程标识符的数组
void* status; // 用于接收线程返回状态的指针
// 循环创建线程
for (int i = 0; i < NUM_THREADS; ++i) {
int ret = pthread_create(&threads[i], NULL, thread_function, (void*)(long)i);
if (ret != 0) {
// 处理错误
printf(
参考资源链接:[Linux下使用pthread_create创建线程详解](https://wenku.csdn.net/doc/6412b53bbe7fbd1778d426b1?spm=1055.2569.3001.10343)
阅读全文