pthread_create使用案例
时间: 2023-07-06 07:35:21 浏览: 114
好的,下面是一个使用pthread_create函数创建线程的简单示例:
```c
#include <pthread.h>
#include <stdio.h>
void *print_message(void *ptr);
int main() {
pthread_t thread;
char *message = "Hello, World!";
int ret = pthread_create(&thread, NULL, print_message, (void *) message);
if (ret != 0) {
printf("Error: pthread_create() failed\n");
return 1;
}
pthread_join(thread, NULL);
return 0;
}
void *print_message(void *ptr) {
char *message = (char *) ptr;
printf("%s\n", message);
pthread_exit(NULL);
}
```
在这个示例中,我们定义了一个名为`print_message`的函数,它接受一个指向`void`类型的指针作为参数,并在屏幕上打印出它所指向的字符串。在`main`函数中,我们声明了一个名为`thread`的线程变量,并使用`pthread_create`函数创建了一个新的线程,该线程将运行我们所定义的`print_message`函数。
在`pthread_create`函数调用中,我们传递了四个参数:指向线程变量的指针`&thread`、线程属性参数`NULL`、指向我们所定义的`print_message`函数的指针、以及一个指向我们想要传递给线程的参数的指针(在这个例子中,我们传递了一个指向字符串`"Hello, World!"`的指针)。
如果`pthread_create`函数成功创建了一个新线程,它将返回0。否则,它将返回一个非零值,我们可以使用它来检查是否出现了错误。
最后,我们使用`pthread_join`函数等待新线程结束,以确保我们的程序不会在新线程执行之前退出。
阅读全文