如何在Linux环境下使用pthread_create创建多个线程,并使用pthread_join等待所有线程完成?
时间: 2024-11-05 22:16:39 浏览: 16
在Linux下进行多线程编程时,pthread_create函数扮演着至关重要的角色,它允许我们创建新的执行线程来并行处理任务。而pthread_join函数则用于等待一个线程结束,这对于同步线程的执行非常有用。下面将详细介绍如何使用这些函数创建和管理线程。
参考资源链接:[Linux下使用pthread_create创建线程详解](https://wenku.csdn.net/doc/6412b53bbe7fbd1778d426b1?spm=1055.2569.3001.10343)
首先,你需要了解pthread_create函数的使用方法。函数原型如下:
```c
int pthread_create(pthread_t *restrict tidp, const pthread_attr_t *restrict attr, void *(*start_rtn)(void*), void *restrict arg);
```
其中,tidp是指向pthread_t类型的指针,用于存储新创建线程的标识符;attr用于设置线程属性,通常传递NULL以使用默认属性;start_rtn是指向线程函数的指针,定义了线程将要执行的代码;arg是传递给线程函数的参数。
下面是一个创建和等待多个线程的示例代码:
```c
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#define NUM_THREADS 3
void* thread_function(void* arg) {
// 线程函数内容
int thread_id = *((int*)arg);
printf(
参考资源链接:[Linux下使用pthread_create创建线程详解](https://wenku.csdn.net/doc/6412b53bbe7fbd1778d426b1?spm=1055.2569.3001.10343)
阅读全文