pthread_creat如何创建线程
时间: 2024-05-30 11:05:29 浏览: 86
pthread_create函数用于创建一个新的线程。它的原型如下[^1]:
```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:传递给线程函数的参数。
下面是一个示例,演示了如何使用pthread_create函数创建线程:
```c
#include <stdio.h>
#include <pthread.h>
void *print_message(void *message) {
char *msg = (char *)message;
printf("%s\n", msg);
pthread_exit(NULL);
}
int main() {
pthread_t thread;
char *message = "Hello, world!";
int result = pthread_create(&thread, NULL, print_message, (void *)message);
if (result != 0) {
printf("Error creating thread.\n");
return 1;
}
pthread_join(thread, NULL);
return 0;
}
```
在上面的示例中,我们定义了一个线程函数print_message,它接收一个字符串作为参数,并将其打印出来。在主函数中,我们创建了一个新线程,并将print_message函数作为线程函数传递给pthread_create函数。然后,我们使用pthread_join函数等待新线程的结束。
阅读全文