Linux 的pthread_create函数
时间: 2024-01-26 18:14:20 浏览: 92
pthread_create函数是Linux下用于创建线程的函数。它的原型如下:
```c
#include <pthread.h>
int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg);
```
该函数的参数解释如下:
- thread:指向pthread_t类型的指针,用于存储新创建线程的ID。
- attr:指向pthread_attr_t类型的指针,用于设置线程的属性。如果传入NULL,则使用默认属性。
- start_routine:指向一个函数的指针,该函数是新线程的起始函数。新线程将从该函数开始执行。
- arg:传递给start_routine函数的参数。
该函数的返回值为整型,表示函数执行的结果。如果成功创建线程,则返回0;如果出现错误,则返回一个错误号。
下面是一个使用pthread_create函数创建线程的示例:
```c
#include <stdio.h>
#include <pthread.h>
void *thread_func(void *arg) {
int *num = (int *)arg;
printf("This is a new thread. The argument is %d\n", *num);
pthread_exit(NULL);
}
int main() {
pthread_t thread;
int num = 10;
int ret = pthread_create(&thread, NULL, thread_func, &num);
if (ret != 0) {
printf("Failed to create thread\n");
return 1;
}
printf("Main thread\n");
pthread_join(thread, NULL);
return 0;
}
```
该示例中,我们定义了一个新线程的起始函数thread_func,该函数接收一个整型参数,并在新线程中打印该参数的值。在主线程中,我们使用pthread_create函数创建了一个新线程,并将参数传递给新线程。然后,主线程继续执行自己的代码,最后使用pthread_join函数等待新线程的结束。
阅读全文