如何在Linux虚拟机中使用pthread_create()创建一个子线程,并在线程中显示:“20221605的子线程在运行”。主线程等待子线程终止。
时间: 2024-10-17 07:15:49 浏览: 31
Linux中的线程
在Linux虚拟机中使用`pthread_create()`函数创建子线程并在线程中打印信息,首先你需要包含必要的头文件,然后创建一个线程函数(通常称为`thread_function`),在这个函数中处理你要执行的任务。下面是一个简单的示例:
```c
#include <stdio.h>
#include <pthread.h>
// 子线程要执行的函数
void *thread_function(void *arg) {
printf("20221605的子线程在运行\n");
return NULL; // 线程完成后的返回值,这里可以省略,因为不需要主线程接收
}
int main() {
pthread_t thread_id; // 存储子线程ID的变量
int rc; // 错误代码
// 创建子线程
if ((rc = pthread_create(&thread_id, NULL, &thread_function, NULL)) != 0) {
fprintf(stderr, "Error creating thread: %d\n", rc);
return -1;
}
// 主线程等待子线程结束
pthread_join(thread_id, NULL);
printf("子线程已退出。\n");
return 0;
}
```
在这个例子中,`pthread_create()`函数接受四个参数:
1. `&thread_id`:存储新创建线程的标识符的地方。
2. `NULL`:表示不使用特定属性创建线程。
3. `&thread_function`:指向要在线程中执行的函数的指针。
4. `NULL`:传递给线程函数的数据,这里是空指针。
`pthread_join()`函数用于让主线程等待子线程结束,它的第一个参数是子线程的标识符,第二个参数是要返回的结果,这里我们传入`NULL`,因为线程并不需要返回结果。
阅读全文