pthread_create(用法
时间: 2023-07-17 18:01:27 浏览: 134
phread 详解
pthread_create是一个函数,用于创建一个新的线程。
其用法如下:
int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg);
参数说明:
- thread:一个指向pthread_t类型的指针,用于存储新创建线程的标识符。
- attr:一个指向pthread_attr_t类型的指针,用于设置新线程的属性(如栈大小、调度策略等),通常可以将其设为NULL,表示使用默认属性。
- start_routine:一个指向函数的指针,该函数是新线程运行的起点,它的返回值和参数类型都必须是void*。
- arg:传递给start_routine函数的参数。
返回值:
- 成功创建线程时,返回0。
- 创建线程失败时,返回一个非0的错误码。
示例用法:
```
#include <pthread.h>
#include <stdio.h>
void* thread_func(void* arg) {
int* num_ptr = (int*)arg;
printf("Thread argument: %d\n", *num_ptr);
pthread_exit(NULL);
}
int main() {
pthread_t thread;
int num = 42;
int ret = pthread_create(&thread, NULL, thread_func, &num);
if (ret != 0) {
printf("Failed to create thread\n");
return 1;
}
pthread_join(thread, NULL);
return 0;
}
```
以上示例中,创建了一个新线程,并将num的地址作为参数传递给线程函数thread_func。线程函数将打印传入的参数值,然后调用pthread_exit退出线程。主线程使用pthread_join等待新线程结束。
阅读全文