pthread_create()方法使用实例,需要传递参数
时间: 2023-09-13 20:09:58 浏览: 84
`pthread_create()` 方法用于创建一个新的线程,其函数原型如下:
```c
#include <pthread.h>
int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg);
```
它的参数如下:
- `thread`:指向线程标识符的指针。
- `attr`:用于设置线程属性,可以为 NULL。
- `start_routine`:指向线程函数的指针。
- `arg`:传递给线程函数的参数。
下面是一个使用 `pthread_create()` 方法的例子,该例子创建一个新的线程,该线程将打印 "Hello, World!":
```c
#include <stdio.h>
#include <pthread.h>
void *print_hello(void *arg) {
printf("Hello, World!\n");
pthread_exit(NULL);
}
int main() {
pthread_t thread_id;
int ret = pthread_create(&thread_id, NULL, print_hello, NULL);
if (ret != 0) {
printf("Error creating thread.\n");
return -1;
}
pthread_join(thread_id, NULL);
return 0;
}
```
在上面的例子中,`pthread_create()` 函数创建了一个新的线程,该线程执行 `print_hello()` 函数,`NULL` 参数表示没有向线程传递参数。使用 `pthread_join()` 函数等待线程完成。
阅读全文