pthread_create()用法
时间: 2023-09-15 13:19:19 浏览: 83
phread 详解
pthread_create() 函数是 POSIX 线程库中的一个函数,用于创建一个新的线程。
其函数原型如下:
```c
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`:指向一个函数的指针,该函数是新线程的入口点。
- `arg`:传递给 `start_routine` 函数的参数。
`pthread_create()` 函数调用成功时返回 0,否则返回一个非零的错误代码。新创建的线程将在调用该函数后立即运行,并开始执行 `start_routine` 函数。
下面是一个示例代码,演示了如何使用 `pthread_create()` 创建一个新线程:
```c
#include <stdio.h>
#include <pthread.h>
void* thread_function(void* arg) {
int thread_arg = *(int*)arg;
printf("Thread argument: %d\n", thread_arg);
// 线程逻辑
// ...
pthread_exit(NULL);
}
int main() {
pthread_t thread;
int arg = 123;
// 创建新线程
int result = pthread_create(&thread, NULL, thread_function, &arg);
if (result != 0) {
fprintf(stderr, "Failed to create thread: %d\n", result);
return 1;
}
// 主线程逻辑
// ...
// 等待新线程结束
pthread_join(thread, NULL);
return 0;
}
```
在上述例子中,`thread_function` 函数是新线程的入口点。它接收一个整数参数作为线程的参数,并在屏幕上打印该参数。主线程通过调用 `pthread_create()` 创建了一个新线程,并传递了参数 `&arg` 给新线程。之后,主线程继续执行自己的逻辑,最后调用 `pthread_join()` 等待新线程执行完成。
希望以上信息对你有所帮助,如有更多疑问,请随时提问!
阅读全文