pthread_create()中start_routine的示例
时间: 2023-09-12 21:13:17 浏览: 94
pthreads使用例子
下面是一个简单的示例,展示了如何在pthread_create()中使用start_routine参数:
```
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
void *print_message(void *arg) {
char *message = (char *) arg;
printf("%s\n", message);
pthread_exit(NULL);
}
int main() {
pthread_t thread;
char *message = "Hello, world!";
int result = pthread_create(&thread, NULL, print_message, (void *) message);
if (result) {
printf("Error creating thread: %d\n", result);
exit(EXIT_FAILURE);
}
pthread_exit(NULL);
}
```
在这个示例中,我们定义了一个名为print_message()的函数作为我们要在新线程中运行的start_routine。该函数接受一个void指针参数,我们在调用pthread_create()时将message指针传递给该参数。在print_message()函数中,我们将该参数强制转换为char指针,然后将其打印到控制台中。
在主函数中,我们创建了一个名为thread的pthread_t变量,并将其传递给pthread_create()函数。如果成功创建线程,则pthread_create()函数将返回0,否则返回一个非零值。在这个示例中,我们简单地检查返回值,如果有错误,则打印错误消息并退出程序。
最后,在主函数的末尾,我们调用pthread_exit(NULL),以确保主线程等待新线程完成执行后再退出。
阅读全文